Julien Deantoni

Professor@Universite Cote d'Azur
researcher@I3S/INRIA KAIROS team.


Ongoing Activities

My research activities are making a pragmatic use of formal models to bring semantics into engineering models and their coordination. This is implemented by the join use of CCSL [1] to define the concurrent and timed semantics of domain specific languages [2,3,4]. Such specification can be used to simulate and run analysis of models conforming such languages [5, 6].

Recently, we studied how different (domain specific) languages can be used conjointly in a comprehensive way. As a result, we proposed to develop a language dedicated to the specification of coordination patterns. BCOoL (Behavioral Coordination Operator Language [7]) makes use of language interfaces defined in terms of event types and specify a coordination pattern so that the coordination between any languages conforming such patterns can be automatically generated. The result is integrated in the gemoc studio to provide heterogeneous execution and debugging facilities.

I also investigated how the explicit specification of the coordination (first at the language level and then at the model level) can be used to automatically generate the master in a co-simulation environment but can also be used for debugging such co-simulation. Named co-modeling for co-simulation, this action was done in the context of the Glose project and few prototype based on FMI and on more general 0MQ distributed queues have been implemented [8,9]

Currently I'm investigating two things: first how the notion of model fidelity can be make explicit in a framework to better rationalize the use of the most appropriate level of fidelity depending on the simulation goal [10]; and second how an explicit operational semantics can be used to generate a model checker integrated in the classical development environment [11]. Note that I have first ideas on generating a compiler from the operational semantics and if you're interested to work on it, please contact me !

[1] Charles André. Syntax and Semantics of the Clock Constraint Specification Language (CCSL). [Research Report] RR-6925, INRIA. 2009, pp.37. inria-00384077v2
[2] Benoit Combemale, Julien Deantoni, Matias Ezequiel Vara Larsen, Frédéric Mallet, Olivier Barais, et al.. Reifying Concurrency for Executable Metamodeling. Erwig, Martin and Paige, Richard F. and Van Wyk, Eric. SLE - 6th International Conference on Software Language Engineering, Oct 2013, Indianapolis, IN, United States. Springer, 8225, pp.365-384, 2013, Lecture Notes in Computer Science; Software Language Engineering - 6th International Conference, SLE 2013, Indianapolis, IN, USA, October 26-28, 2013. Proceedings. 10.1007/978-3-319-02654-1_20. hal-00850770v2
[3] Julien Deantoni, Frédéric Mallet. ECL: the Event Constraint Language, an Extension of OCL with Events. [Research Report] RR-8031, INRIA. 2012, pp.24. hal-00721169v2
[4] 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, Pittsburg, United States. ACM, 2015, hal-01185911
[5] Julien Deantoni, Frédéric Mallet. TimeSquare: Treat your Models with Logical Time. Carlo A. Furia, Sebastian Nanz. TOOLS - 50th International Conference on Objects, Models, Components, Patterns - 2012, May 2012, Prague, Czech Republic. Springer, 7304, pp.34-41, 2012, Lecture Notes in Computer Science - LNCS; Objects, Models, Components, Patterns. doi://10.1007/978-3-642-30561-0_4. hal-00688590
[6] Benoit Combemale, Julien Deantoni, Olivier Barais, Arnaud Blouin, Erwan Bousse, et al.. A Solution to the TTC'15 Model Execution Case Using the GEMOC Studio. 2015. hal-01152342
[7] Matias Ezequiel Vara Larsen, Julien Deantoni, Benoit Combemale, Frédéric Mallet. A Behavioral Coordination Operator Language (BCOoL). Timothy Lethbridge; Jordi Cabot; Alexander Egyed. International Conference on Model Driven Engineering Languages and Systems (MODELS), Sep 2015, Ottawa, Canada. ACM; IEEE, 18th International Conference on Model Driven Engineering Languages and Systems (MODELS) pp.462, 2015, hal-01182773
[8] Giovanni Liboni, Julien Deantoni. CoSim20: An Integrated Development Environment for Accurate and Efficient Distributed Co-Simulations. ICISE 2020 - 5th International Conference on Information Systems Engineering, Nov 2020, Manchester / Virtual, United Kingdom. hal-03038547
[9] Giovanni Liboni, Julien Deantoni. A Semantic-Aware, Accurate and Efficient API for (Co-)Simulation of CPS. CoSim-CPS 2020 - Software Engineering and Formal Methods. SEFM 2020 Collocated Workshops, Sep 2020, Amsterdam / Online, Netherlands. hal-03038527
[10] João Cambeiro, Julien Deantoni, Vasco Amaral. Supporting the Engineering of Multi-Fidelity Simulation Units With Simulation Goals. International Workshop on Multi-Paradigm Modeling for Cyber-Physical Systems (MPM4CPS'21), Oct 2021, Fukuoka, Japan hal-03374990
[11] Julien Deantoni, João Cambeiro, Soroush Bateni, Shaokai Lin, Marten Lohstroh. Debugging and Verification Tools for LINGUA FRANCA in GEMOC Studio. FDL 2021 - Forum on specification and Design Languages, Sep 2021, Antibes, France. hal-03374955

Ongoing Projects

  • GLOSE, bilateral INRIA/Safran project
  • IRT Saint Exupery Archeocs project
  • PSPC Adavec project


  • TimeSquare

    TimeSquare is developed for almost 10 years for now. It is dedicated to the specification, simulation, compiling and analysis of logical time constraints in CCSL (Clock Constraint Specification Language, a formal declarative language). It is constantly evolving and can be used either as a plain IDE or as an embedded solver. It has been used to represent the behavioral semantics together with the timing performance in many of our publications.

  • MoCCML mapping (ECL)

    MoCCML mapping, formerly named ECL (Event Constraint Language) is a lightweight extension of OCL (Object Constraint Language) with the notion of Event and logical constraints. It is used to specify the concurrent semantics of languages so that, for a specific model, the corresponding CCSL formal model can be automatically synthesize.

  • MoCCML

    MoCCML (Model of Concurrency and Communication Modeling Language) is a formal meta-language dedicated to the specification of logical constraints between events, based on constraint automata. These constraints can be used conjointly with a CCSL specification for simulation and analysis. It can also be used in ECL to specify the concurrency of a language or in BCOoL to specify how a coordination pattern between different languages behaves.

  • BCOoL

    BCOoL (Behavioral Coordination Operator Language) is a meta-language dedicated to the specification of behavioral coordination patterns. Based on event type from some language interfaces, it specifies how the models that conform such languages have to be coordinated. The specification, make at the language level is used to automatically creates an executable coordination for any model conforming the languages used in BCOoL. The resulting heterogeneous models can be simulated in the GEMOC studio or analyzed in TimeSquare (see here for an heterogeneous simulation from a BCOoL specification)

  • Cosim20

    CoSim20: An Integrated Development Environment for Accurate and Efficient Distributed Co-Simulations The development of Cyber-Physical Systems involves several disciplines and stakeholders, which use heterogeneous models and formalisms to specify the system and make early validation and verification. In order to understand the behaviour emerging from the heterogeneous models, a collaborative simulation (co-simulation) can be used. To make it happen, the system engineer must define a correct coordination of the different executable models, which can be distributed over different enterprises. This is an important but difficult (and error prone) task that can not be done without information about the behavioral semantics of each model. In this paper, we introduce an integrated development environment which allows 1) to import different executable models (named simulation units), 2) to graphically connect them with rich connectors and 3) to generate a dedicated, accurate and efficient distributed co-simulation. The framework is based on Eclipse EMF for the modeling part and on ∅MQ for the deployment. It is named CoSim20.

Open Positions



Finite State Machine: resources here
In this course, I give a pragmatic view on the use of Finite State Machine in an engineering context. The goal is to understand how state machines can be used in different contexts to cleanly structure control code. The notion of FSM, code generation, V&V and temporal logic will be investigated both theoretically and practically through the use of different tools and paradigms like, for instance, SCXML, Yakindu and LTSA. The course objective is to keep a good balance between theoretical and practical aspects.
The course will be evaluated based on random/continuous evaluations, graded lab sessions and, at the end, by an exam.

Programmation Multi paradigm en C++: resources here
In this course, I give an introduction to C++ (norm C++11). Its ability to be used for procedural programming, the genericity (templates), some elements of the STL (Standard Template Libray), the use of Lambda expressions, some algorithms and, of course the Object-Oriented capabilities provided by C++.
The course will be evaluated based on random/continuous evaluations, graded lab sessions and, at the end, by an exam.

Final internships management: resources here
In a nutshell, three websites to know: jobteaser, conventions et wints. You and your industrial tutor will receive wints login and password according to the information in your convention, so please be careful when filling the convention.
You're a company and wand to propose an internship, please check HERE

Domain Specific Languages: resources here
In this course, we will explore the benefits and development of Domain Specific Languages. It will be mainly based on pragmatic aspects and ends with new trends and expectations. The course will be evaluated based on intermediate lab reports ad an exam.

Language behavioral semantics: resources here and description here
In this course, we will explore the notion of behavioral semantics in practice. After an introduction on executable Languages, we will do a tutorial based on the latest GEMOC studio. Then, we will study the need and the way to specify the behavioral semantics of a language. As a result you will develop a simulation modeling environment for Arduino. The course will be evaluated based on intermediate reports, the state of the arduino simulator and an exam.

Embedded Applications and Systems: resources here
In this course, we will explore how a micro controler can be programmed without any Operating System or with a very light Real Time Operating System. After some general introduction on the field, the students are putting the hands on, based on the arduino platform and its atmel micro controler.

Introduction to Embedded Software and Systems (ISLE): resources here
In this course, we will explore how a micro controler can be programmed with a very light Real Time Operating System and later without any OS. After some general introduction on the field, the students are putting the hands on, based on the arduino platform and its atmel micro controler.

Proposed Internships


Introduction to Languages and Compilation (L3IA): resources here
In this course, we will explore the notion of language and how it can be built and tooled.

Introduction à l'Informatique: resources here
L'objectif de ce cours est de permettre aux étudiants de pratiquer la science informatique aux travers d'exemples simples, et ainsi les familiariser avec la notion de langage, programme et algorithme. Ces notions sont aujourd'hui primordiales dans la pratique de toutes les sciences.

anglais in antibes