Computer scientist
PhD at University of Rennes, 1998; Habilitation thesis (HDR) at University of Bordeaux, 2019.
|
Inria Bordeaux - Sud-Ouest |
phone: +33 524 574 154 |
Computer scientist in programming languages applied to automated software engineering and ubiquitous computing, I am currently on an Advanced Research Position at Inria Bordeaux, member of the Phoenix research group since November 2014.
Fields of expertise: programming languages, domain-specific languages (DSL), automated software engineering, ubiquitous computing, Internet of Things (IoT), smart cities, intelligent transportation systems (ITS), complex event processing (CEP), assistive applications, compilers, programming tools, pattern matching, software checking, software clones, partial evaluation.
Research interests
I am focusing on various applications of programming language technologies and DSLs resulting in practical and usable tools in various domains, such as software development and ubiquitous computing. For instance, I am actively working on tools and languages for developing context-aware services, and I also worked on DSLs for increasing software reliability or improving productivity. I think that DSL have still a tremendous potential to unleash creativity, by empowering large classes of people, instead of just a few, to advance the state of the art in various fields.
Background
My background is in programming language technologies, including program analyses, program transformations, and the design of DSLs.
During my PhD at the University of Rennes/IRISA, I studied applications of partial evaluation to the optimization of operating system services, both at compile time and at run time.
I gained a solid experience in concrete applications of such technologies in the software industry, by working many years as a research engineer, language expert, and R&D project leader, at Canon Research Centre France and Metaware Technologies. You may find more details on my linkedIn page. In parallel with these full-time jobs, I continued to perform academic research and regularly publish results, in fields such as compilers, software checking, and pattern matching.
Since I joined the Phoenix research group in 2014, I focus on tools and languages for improving the development of IoT / ubiquitous and pervasive computing services, in applications domains such as Ambient Assistive Living (AAL) and Smart Cities, including Intelligent Transportation Systems (ITS).
Research topics
My active research topics include:
- DSLs for Ambient Assisted Living (AAL): online state processing.
AAL has the potential to address a major societal challenge nowadays, by supporting active aging at home. However, a key difficulty is the development of numerous AAL services customized for a variety of configuration, needs, and preferences. This has been shown to be an essential condition for technology acceptance and usefulness. After experimenting with existing technologies for developing AAL services (Java, automata, complex event processing, etc.) on a large-scale deployment in real homes called HomeAssist, we successfully defined two DSLs for programming context detection logic: the Maloya language and the Allen language, which dramatically simplify the development of a wide range of customized AAL services. Further research will address extending the expressiveness of these languages, proving their implementation correct to enable safety-critical assistive services, facilitate developing and debugging, assessing and improving their usability, etc. - Smart home logs analyses: new methods for data extraction.
Leveraging (1) the logs accumulated in the HomeAssist large-scale deployment, covering 1year+ in 100+ real homes, and (2) the above DSLs for AAL services development, we are currently investigating for scalable, flexible, and accurate extraction of high-level data from smart home logs. We aim, among other, address insufficiently answered but critical needs, such as detecting weak signals on longitudinal logs. A first research objective is setting up a layered library of programing abstractions for complex operations such as validating and cleaning data, aggregating multi-sensorial timed data series in generic ways, and inferring daily living activities. For example, sleep has been shown to be a major health predictor for seniors. We will thus apply such log extraction techniques to measure metrics on sleep time, regularity, or quality, so as to empower aging experts with new data-driven tools. - IoT: orchestrating masses of sensors and actuators.
IoT applications using massing of sensors become common in smart cities or environment monitoring. Masses of actuators are also common in personalized services for smart cities, where different results (e.g. parking recommendations) have to be computed for each individual user. Developing such IoT applications at scale needs efficient parallelization techniques for data crunching, and poses a supplementary challenge on developers. We designed a DSL called DiaSwarm for automating much of the involved infrastructure code, thus letting developers to concentrate on the application logic. The main case studies underlying this research have been parking guidance services and a collaborative ITS mobile application.
- Software clones management: editing & refactoring.
Software duplication adds a major burden on development costs. It is known that most software systems contain a significant part of duplicated code, or clones, and mature tools exist today for detecting these clones in software of any size. In turn, handling the overwhelming information produced by clone detectors is still a real challenge: whichclones need to be refactored and how? For addressing the “how”, we defined a DSL for expressing code generators, and defined a safe method for manually refactoring clones as code generators. For addressing the “which”, we introduced an Eclipse editor plugin for transparently managing code generators in C/C++ programs, liberating developers from this dilemma. Further research is needed to assess and improve the usability of these tools. - Pattern matching in custom notations.
Pattern matching of data structures is a powerful tool for programmers using functional languages, but is absent in mainstream languages. We defined an approach to implement pattern matching in mainstream object languages, as illustrated by the myPatterns library for Java and JavaScript. This technique not only brings the power and convenience of pattern matching to the many, but also allows defining them their own domain-specific notations for their data structures. - Lightweight program checking.
Various tools exist for statically detecting frequent bug patterns in programs, such as null pointer dereferences or misusing common APIs. We have shown that sporadic use of such tools does find these bugs but do not prevent their re-apparition in a longer term. For addressing this issue, we proposed the approach of continuous checking, based on a DSL called Condate for expressing lightweight properties on control and data flow that are checked by an extensible compiler at each invocation. - Program specialization for optimizing system software.
System software such as OS kernels or network services has to be both highly generic and very efficient. To reconcile these contradictory goals, we contributed to the development of a partial evaluator for C programs, and successfully applied it to specialize system services, either at compilation time or during execution. Managing incremental specialization at runtime is a challenge in itself, so we proposed the concept of specialization classes to address this difficulty in a declarative way.
PhD students
I advised or co-advised the following PhD students:
- Adrien Carteron, on his thesis “An event-driven approach to developing interdisciplinary services dedicated to aging in place", defended in 2017
- Milan Kabac, on his thesis “A design-driven methodology for the development of large-scale orchestrating applications”, defended in 2016
Teaching
I regularly take teaching activities such as lectures on:
- Imperative programming in C (level: License)
- Object programming in C++ and Java (level: professional License)
- Software engineering for smart spaces (level: Master)
- Advanced topics - technology surveys (level: Master)
Publications
Complete list of publications
You may consult my complete list of publications. Note that between 1998 and 2014 I also worked full time on R&D in the industry.
Recent publications
Following is a list of recent publications within the Phoenix research group.
2019
Conference papers
- titre
- AllenRV: an Extensible Monitor for Multiple Complex Specifications with High Reactivity
- auteur
- Nic Volanschi, Bernard Serpette
- article
- RV 2019 - The 19th International Conference on Runtime Verification, Oct 2019, Porto, Portugal
- Accès au texte intégral et bibtex
2018
Journal articles
- titre
- A Language for Online State Processing of Binary Sensors, Applied to Ambient Assisted Living
- auteur
- Nic Volanschi, Bernard Serpette, Adrien Carteron, Charles Consel
- article
- Proceedings of the ACM on Interactive, Mobile, Wearable and Ubiquitous Technologies , ACM, In press, 2 (4), pp.26. ⟨10.1145/3287070⟩
- Accès au texte intégral et bibtex
Conference papers
- titre
- A Domain-Specific Approach To Unifying The Many Dimensions of Context-Aware Home Service Development
- auteur
- Nic Volanschi, Adrien Carteron, Charles Consel
- article
- The 15th IEEE International Conference on Ubiquitous Intelligence and Computing (UIC 2018), Oct 2018, Guangzhou, China
- Accès au texte intégral et bibtex
- titre
- Implementing a semi-causal domain-specific language for context detection over binary sensors
- auteur
- Nic Volanschi, Bernard Serpette, Charles Consel
- article
- 17th International Conference on Generative Programming: Concepts and Experiences (GPCE 2018), ACM SIGPLAN, Nov 2018, Boston, Massachusetts, United States. pp.66-78, ⟨10.1145/3278122.3278134⟩
- Accès au texte intégral et bibtex
- titre
- Stereo: editing clones refactored as code generators
- auteur
- Nic Volanschi
- article
- ICSME 2018 - 34th IEEE International Conference on Software Maintenance and Evolution, Sep 2018, Madrid, Spain
- Accès au texte intégral et bibtex
2017
Journal articles
- titre
- Designing Parallel Data Processing for Enabling Large-Scale Sensor Applications
- auteur
- Milan Kabáč, Charles Consel, Nic Volanschi
- article
- Personal and Ubiquitous Computing, Springer Verlag, 2017, 21 (3), pp.457-473. ⟨10.1007/s00779-017-1009-1⟩
- Accès au texte intégral et bibtex
2016
Conference papers
- titre
- Towards Smart and Sustainable Multimodal Public Transports Based on a Participatory Ecosystem
- auteur
- Nic Volanschi
- article
- Workshop on Smart and Sustainable City (WSSC'16), Jul 2016, Toulouse, France
- Accès au texte intégral et bibtex
- titre
- Leveraging Declarations over the Lifecycle of Large-Scale Sensor Applications
- auteur
- Milan Kabáč, Charles Consel, Nic Volanschi
- article
- 13th IEEE International Conference on Ubiquitous Intelligence and Computing (UIC 2016), Jul 2016, Toulouse, France
- Accès au texte intégral et bibtex
- titre
- Improving the Reliability of Pervasive Computing Applications By Continuous Checking of Sensor Readings
- auteur
- Adrien Carteron, Charles Consel, Nic Volanschi
- article
- IEEE International Conference on Ubiquitous Intelligence and Computing, Jul 2016, Toulouse, France
- Accès au texte intégral et bibtex
2015
Conference papers
- titre
- An Evaluation of the DiaSuite Toolset by Professional Developers
- auteur
- Milan Kabáč, Nic Volanschi, Charles Consel
- article
- Workshop on Evaluation and Usability of Programming Languages and Tools (PLATEAU) 2015, Oct 2015, Pittsburgh, United States
- Accès au texte intégral et bibtex
Poster communications
- titre
- An Evaluation of the DiaSuite Toolset by Professional Developers
- auteur
- Milan Kabáč, Nic Volanschi, Charles Consel
- article
- ACM SIGPLAN conference on Systems, Programming, Languages and Applications: Software for Humanity (SPLASH), Oct 2015, Pittsburgh, Pennsylvania, United States
- Accès au texte intégral et bibtex