Nic Volanschi

Computer scientist

my photo

Inria Bordeaux - Sud-Ouest
200, avenue de la Vieille Tour
33405 Talence Cedex

phone: +33 524 574 154
e-mail: eugene dot volanschi atnospam inria dot fr

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), 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 ubiquitous and pervasive computing services, in applications domains such as Ambient Assistive Living (AAL) and IoT.

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.
  • 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: which clones 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.
Past research topics include:
  • 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.
  • 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:

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.

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. ⟨https://imwut.acm.org⟩. ⟨10.1145/3287070⟩
Accès au texte intégral et bibtex
https://hal.inria.fr/hal-01947742/file/camera-ready-20181114.pdf BibTex

Conference papers

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
https://hal.inria.fr/hal-01882545/file/stereo.pdf 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
https://hal.inria.fr/hal-01956179/file/main.pdf BibTex
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
https://hal.inria.fr/hal-01956193/file/DSL.pdf 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, Special Issue on Ubiquitous Intelligence and Computing for Enabling a Smarter World, ⟨10.1007/s00779-017-1009-1⟩
Accès au texte intégral et bibtex
https://hal.inria.fr/hal-01470281/file/main.pdf 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
https://hal.inria.fr/hal-01318341/file/vipFinalWSSC16.pdf 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
https://hal.inria.fr/hal-01319731/file/main.pdf 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
https://hal.inria.fr/hal-01319059/file/paper.pdf 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
https://hal.inria.fr/hal-01225640/file/plateau2015-kabac.pdf 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. ⟨http://2015.splashcon.org⟩
Accès au texte intégral et bibtex
https://hal.inria.fr/hal-01319986/file/poster_PLATEAU_fonts_outlined.pdf BibTex