PhD Position: Concurrent Metaprogramming

Concurrent Domain-Specific Language Engineering

In the context of a collaboration between Inria and Safran, we are looking for a highly motivated PhD candidate in model-driven engineering, software language engineering, programming language design and implementation, concurrency theory and simulation.

Keywords: Software and Systems engineering, Domain-Specific Languages, Language Engineering, Concurrency Theory, Executable (Meta)modeling
Main advisor: Benoit Combemale (Inria & Univ. Rennes 1)


The emergence of modern concurrent systems (e.g., Cyber-Physical Systems or the Internet of Things) and highly-parallel platforms (e.g., many-core, GPGPU pipelines, and distributed platforms) calls for Domain-Specific Modeling Languages (DSMLs) where concurrency is of paramount importance. Such DSMLs are intended to propose constructs with rich concurrency semantics, which allow system designers to precisely define and analyze system behaviors.

However, specifying and implementing the execution semantics of such DSMLs can be a difficult, costly and error-prone task. Most of the time the concurrency model remains implicit and ad-hoc, embedded in the underlying execution environment. The lack of an explicit concurrency model prevents: the precise definition, the variation and the complete understanding of the semantics of the DSML, the effective usage of concurrency-aware analysis techniques, and the exploitation of the concurrency model during the system refinement (e.g., during its allocation on a specific platform).

In recent work, we introduce a concurrent executable metamodeling approach [1,2], which supports a modular definition of the execution semantics, including the concurrency model, the semantic rules, and a well-defined and expressive communication protocol between them [3]. This approach has been integrated into the GEMOC studio, and comes with a dedicated meta-language to specify the concurrency model and the communication protocol [4], and with an generic execution framework, including an execution trace manager [5] to support dynamic analysis, such as the simulation, animation and debugging of behavioral models [6].

While this work demonstrated the feasibility of the cross-fertilization of concurrency theory and algorithm theory, and experienced there reification for the design and implementation of formal operational semantics of behavioral modeling languages, it remains tedious, and require a high expertise, to specify such a language semantics.

In this PhD, we propose to explore a novel concurrent metamodeling approach inspired from concurrent and reactive programming (e.g., actor model within AKKA, Erlang, Orc), to ease the formal definition of concurrent operational semantics, supported by the automatic inference of an explicit model of concurrency and corresponding behavioral interface. Both will be used to automatically derive an advanced concurrent execution environment that can be controlled by dynamic analysis tools, and coordinated by external tools. The main expected outcome a metalanguage for specifying concurrent operational semantics of executable domain-specific modeling language (xDSML). The underlying challenge is to formally define a new unified metaprogramming paradigm which combine the object-oriented metamodeling approach with paradigms coming from concurrency computing and reactive programming. This will allow language designer to specify the behavioral semantics (including domain-specific concurrency constraints) in a uniform way, with a formal inference of the underlying model of concurrency and behavioral interface. For this purpose, the metalanguage must be complemented with a generative approache to automatically derive an advanced domain-specific execution environment, which offer among others an execution engine that can be controlled and coordinated thanks to an explicit behavioral interface given in the form of an execution model, and an associated execution trace management framework to support dynamic analysis of models.


  1. Benoit Combemale, Cécile Hardebolle, Christophe Jacquet, Frédéric Boulanger, Benoit Baudry. Bridging the Chasm between Executable Metamodeling and Models of Computation. 5th International Conference, SLE 2012. Springer, 7745 (12), pp.184-203, 2013, LNCS.
  2. Benoit Combemale, Julien Deantoni, Matias Ezequiel Vara Larsen, Frédéric Mallet, Olivier Barais, et al. Reifying Concurrency for Executable Metamodeling. SLE – 6th International Conference on Software Language Engineering. Springer, 8225, pp.365-384, 2013, LNCS. <10.1007/978-3-319-02654-1_20>.
  3. Florent Latombe, Xavier Crégut, Benoît Combemale, Julien Deantoni, Marc Pantel. Weaving Concurrency in eXecutable Domain-Specific Modeling Languages. 8th ACM SIGPLAN International Conference on Software Language Engineering (SLE), 2015. ACM, 2015, <>.
  4. Julien Deantoni, Papa Issa Diallo, Ciprian Teodorov, Joël Champeau, Benoit Combemale. Towards a Meta-Language for the Concurrency Concern in DSLs. IEEE proceedings of Design, Automation and Test in Europe Conference and Exhibition (DATE), 2015.
  5. Erwan Bousse, Tanja Mayerhofer, Benoit Combemale, Benoit Baudry. A Generative Approach to Define Rich Domain-Specific Trace Metamodels. 11th European Conference on Modelling Foundations and Applications (ECMFA). <>.
  6. Erwan Bousse, Jonathan Corley, Benoit Combemale, Jeff Gray, Benoit Baudry. Supporting Efficient and Advanced Omniscient Debugging for xDSMLs. 8th International Conference on Software Language Engineering (SLE). <>.
  7. Peter D. Mosses: Modular structural operational semantics. J. Log. Algebr. Program. 60-61: 195-228 (2004)
  8. Jean-Marc Jézéquel, Benoit Combemale, Olivier Barais, Martin Monperrus, François Fouquet. Mashup of Meta-Languages and its Implementation in the Kermeta Language Workbench. Software and Systems Modeling, Springer Verlag, 2015, 14 (2), pp.905-920.

Working Environment

The candidate will work in between the INRIA team DIVERSE and Safran. The contract is for 36 months, and the monthly net salary will be according to experiences.

DIVERSE’s research is in the area of software engineering, focusing on the management of diversity in the construction and runtime management of software intensive systems. The team is actively involved in European, French and industrial projects and is composed of 8 faculty members, 18 PhD students, 5 postdocs and 4 engineers.

The contract is for 36 months, and the monthly net salary is to be defined by Safran (around 2400€/month after taxes). The subject is a collaboration with Safran tech so that the successful applicant will work on Safran’s use cases and technologies and in close relation with their R&D department (i.e., the candidate will have regular physical meetings with them).

How to apply

Please send your application (PDF) as soon as possible. Screening of applications starts immediately and continues until the position is filled. Send cover letter including names of at least two referees, CV, PDFs of Master thesis (or draft), and possibly up to three most relevant publications to Benoit Combemale.