for dsls integration
play

for DSLs Integration Thomas Degueule INRIA, France Mechanical - PowerPoint PPT Presentation

Towards Language Interfaces for DSLs Integration Thomas Degueule INRIA, France Mechanical Airlines Structure Human- Machine Avionics Interaction Environmental Aerodynamics Impact Multiple Concerns Propulsion Safety System


  1. Towards Language Interfaces for DSLs Integration Thomas Degueule – INRIA, France

  2. Mechanical Airlines Structure Human- Machine Avionics Interaction Environmental Aerodynamics Impact Multiple Concerns Propulsion Safety System Regulations Authorities Communications Navigation

  3. Mechanica Airlines l Structure Human- Machine Avionics Interaction Environment Aerodynamics al Heterogeneous Impact Modeling Propulsion Safety System Regulations Authoritie Communications s Navigation 3

  4. The daily life of DSLs ▪ Closely evolve with the domain and the experts’ understanding of the domain ▪ Extended, shrunk, customized, replaced with alternatives ▪ Meant for rapid prototyping, evolution Towards Language Interfaces for DSLs Integration 4

  5. Towards Language Interfaces for DSLs Integration 5

  6. Towards Language Interfaces for DSLs Integration 6

  7. Towards Language Interfaces for DSLs Integration 7

  8. Towards Language Interfaces for DSLs Integration 8

  9. Variants or subsequent versions cannot leverage previous engineering efforts Towards Language Interfaces for DSLs Integration 9

  10. v2.1 How can we ensure interoperability between v2.4 subsequent versions? Towards Language Interfaces for DSLs Integration 10

  11. How can we foster the reuse of artifacts between similar languages? Towards Language Interfaces for DSLs Integration 11

  12. Challenges • Manage evolution • Agile modeling • Generic tools & • Manipulate models in transformations different environments • Manage syntactical / • Reuse transformations & semantical variation points tools • Design families (variants) Towards Language Interfaces for DSLs Integration 12

  13. A unique solution: language interfaces • Tools, transformations, environments are tightly coupled with the language they were originately defined on  If the language evolves, associated tools break  If a variant exists, tools cannot be reused • An abstraction layer would reduce the coupling  We realize this abstraction layer with language interfaces Towards Language Interfaces for DSLs Integration 13

  14. Language Implementation (abstract syntax, concrete syntaxes, semantics, …) Language Interface (meaningful information for a specific purpose) Language and Model engineering (transformations, tools, editors, IDEs, …)  Multiple DSLs can match the same interface  Operators defined on an interface can be reused for all implementing DSLs Towards Language Interfaces for DSLs Integration 14

  15. A structural interface: the model type ▪ Interface over the abstract syntax of a language (a metamodel) ▪ Focus on the reuse of tools and transformations ▪ Typing semantics for model manipulation ▪ Supported by a model-oriented type system ▪ Models (i.e. graph of objects) as first-class citizens  Type group (family) polymorphism  Structural typing  Provides model polymorphism and substitutability Towards Language Interfaces for DSLs Integration 15

  16. Model typing Towards Language Interfaces for DSLs Integration 16

  17. Model typing Towards Language Interfaces for DSLs Integration 17

  18. Model typing Towards Language Interfaces for DSLs Integration 18

  19. Melange A language-based, model-oriented programming language Towards Language Interfaces for DSLs Integration 19

  20. Melange: A Language-Based Model-Oriented Programming Language ▪ A language for defining DSLs ▪ Import DSLs implementation ▪ Handy operators for SLE: inheritance, merge, etc. ▪ Aspect-oriented modeling (e.g. for executable meta-modeling) ▪ Generic transformations ▪ A language for manipulating models ▪ Models as first-class, typed citizens ▪ Model-oriented type system providing model polymorphism ▪ Flexible save and load mechanism ▪ Fully interoperable with the EMF ecosystem ▪ As an external or internal DSL Towards Language Interfaces for DSLs Integration 20

  21. 21

  22. 22

  23. 23

  24. 24

  25. 25

  26. 26

  27. 27

  28. Ongoing Experiments ▪ Families of syntactically and semantically diverse languages ▪ Example: FSM ▪ Syntaxes: Simple – hierarchical – with time constraints – etc. ▪ Semantics: Run-to-completion – concurrent – etc. ▪ Generic transformations: flatten – execute – etc. ▪ Thales’ Capella language ▪ xCapella: executable extension of Capella ▪ Managing the interoperability with UML ▪ Executable metamodeling within the ANR GEMOC project Towards Language Interfaces for DSLs Integration 28

  29. Future Work ▪ Generic meta-programming ▪ Viewpoints engineering ▪ Model types as explicit required/provided interfaces of languages units ▪ Behavioral interfaces (e.g. event structure) for coordinated execution of heterogeneous languages Towards Language Interfaces for DSLs Integration 29

  30. Wrap-up • DSL engineering • Agile modeling • High-level operators • Manipulate models in different environments • Inheritance, merge, etc. • Viewpoints • Aspect-oriented modeling • Executable meta-modeling • Reuse of tools • Generic tools definition Towards Language Interfaces for DSLs Integration 30

  31. Acknowledgments ▪ Dr. Olivier Barais, University of Rennes, France ▪ Dr. Arnaud Blouin, INSA Rennes, France ▪ Dr. Benoit Combemale, INRIA, France ▪ Prof. Jean-Marc Jezequel, University of Rennes, France ▪ Prof. Robert France, CSU, USA http://melange-lang.org https://github.com/diverse-project/melange Towards Language Interfaces for DSLs Integration 31

Recommend


More recommend