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
TCOS is a recent initiative whose goal is to provide a meta language to specify the behavioral semantics of grammar specified in Langium. From the semantic specification, a compiler to different languages are provided (C++, Python, JS).
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, 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 (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 (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: 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.
Previous Teachings (unmaintained)
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 at the beginning and it ends with new trends and expectations.
The course will be evaluated based on intermediate lab reports and an exam.
Architecting IoT Systems; Beyond Functional Correctness: resources here
In this course, we will explore the importance reasoning beyond functional correctness for IoT systems. It will be mainly based on pragmatic aspects and challenging review of architecture proposed by students.
The course will be evaluated based on lab reports and project presentation.
Introduction à l'Informatique: resources here
L'objectif de ce cours est de permettre aux étudiants de L1 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