Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

Modular Language Composition for the Masses

12 vues

Publié le

Slides of the Modular Language Composition for the Masses paper are the Software Language Engineering (SLE) conference 2018.

Publié dans : Sciences
  • Soyez le premier à commenter

  • Soyez le premier à aimer ceci

Modular Language Composition for the Masses

  1. 1. Software Language Composition for the Masses Manuel Leduc, Thomas Degueule, Benoit Combemale Joint work in the context of the associated research team ALE between Inria (DiverSE) and CWI (SWAT).
  2. 2. Context & Motivation
  3. 3. DSL Everywhere (1/2) Modular Language Composition for the Masses 1 / 19
  4. 4. DSL Everywhere (2/2) Challenges 1. Complex Language Engineering effort; 2. Requires expert knowledge; 3. Requires maintenance and evolution investments. Modular Language Composition for the Masses 2 / 19
  5. 5. DSL Everywhere (2/2) Challenges 1. Complex Language Engineering effort; 2. Requires expert knowledge; 3. Requires maintenance and evolution investments. Proposed Solution Reuse, assemble and customize existing languages. Modular Language Composition for the Masses 2 / 19
  6. 6. Language extension A language-development system supports language extension of a base language if the implementation of the base language can be reused unchanged to implement a language extension. Language composition A language-development system supports language composition of two languages if the implementation of both languages can be reused unchanged by adding glue code only. [MODELS'17] [SLE'18] Language reuse Modular Language Composition for the Masses 3 / 19
  7. 7. Language Composition Goal: "Import, bind & reuse" Modular Language Composition for the Masses 4 / 19
  8. 8. Rely on dedicated paradigms Spoofax (Term reduction rules); Monticore (Component Based); Neverlang (Sectional DSL). Relying on mainstream paradigms Lisa (Object-Oriented Attribute Grammar); Melange (Object-Oriented Composition Operators). Pro: Highly modular. Cons: Rely on dedicated paradigms. Pro: Mainstream paradigm based. Cons: Limited modularity (at the impl. level) . A Landscape of Language Composition Modular Language Composition for the Masses 5 / 19
  9. 9. Rely on dedicated paradigms Spoofax (Term reduction rules); Monticore (Component Based); Neverlang (Sectional DSL). Relying on mainstream paradigms Lisa (Object-Oriented Attribute Grammar); Melange (Object-Oriented Composition Operators). Pro: Highly modular. Pro: Mainstream paradigm based. A Landscape of Language Composition Cons: Rely on dedicated paradigms. Cons: Limited modularity (at the impl. level). Modular Language Composition for the Masses 6 / 19
  10. 10. Anatomy of a DSL Modular Language Composition for the Masses 7 / 19
  11. 11. Anatomy of a DSL Modular Language Composition for the Masses 7 / 19
  12. 12. Anatomy of a DSL Modular Language Composition for the Masses 7 / 19
  13. 13. Finite State Machine Language Concern Modular Language Composition for the Masses 8 / 19
  14. 14. Finite State Machine Language Concern Modular Language Composition for the Masses 8 / 19
  15. 15. Requirements
  16. 16. Requirements R1: Concern Encapsulation Language concerns should be composed without having to inspect their internal implementation. Modular Language Composition for the Masses 9 / 19
  17. 17. Requirements R1: Concern Encapsulation R2: Explicit Required Interface Required interfaces of language concerns should explicitly state the requirements a concern has towards other concerns. Modular Language Composition for the Masses 10 / 19
  18. 18. Requirements R1: Concern Encapsulation R2: Explicit Required Interface R3: Incremental Compilation Language Concern should be type-checked and compiled separately. Modular Language Composition for the Masses 11 / 19
  19. 19. Requirements R1: Concern Encapsulation R2: Explicit Required Interface R3: Incremental Compilation R4: Concern Substitutability Two Language Concerns with compatible interfaces should be substitutable. Modular Language Composition for the Masses 12 / 19
  20. 20. Requirements R1: Concern Encapsulation R2: Explicit Required Interface R3: Incremental Compilation R4: Concern Substitutability R5: Non-intrusivity Defining Language Concern should be based on Object- Oriented engineering technologies. Modular Language Composition for the Masses 13 / 19
  21. 21. Approach
  22. 22. Overview Modular Language Composition for the Masses 14 / 19
  23. 23. Overview Modular Language Composition for the Masses 14 / 19
  24. 24. Overview Modular Language Composition for the Masses 14 / 19
  25. 25. Overview Modular Language Composition for the Masses 14 / 19
  26. 26. Overview Modular Language Composition for the Masses 14 / 19
  27. 27. Overview Modular Language Composition for the Masses 14 / 19
  28. 28. Overview Modular Language Composition for the Masses 14 / 19
  29. 29. Overview Modular Language Composition for the Masses 14 / 19
  30. 30. Experimentation
  31. 31. Architecture Workflow Actions IoT Usecase (1/2) Modular Language Composition for the Masses 15 / 19
  32. 32. Architecture Workflow Actions Model sensors' interface Model sensors' control flow Express sensors' actions IoT Usecase (1/2) Modular Language Composition for the Masses 15 / 19
  33. 33. Architecture Workflow Actions Model sensors' interface Model sensors' control flow Express sensors' actions OMG's IDL provides operation getTemp(inout temp) Activity Diagram IoT Usecase (1/2) Modular Language Composition for the Masses 15 / 19
  34. 34. IoT Usecase (2/2) Modular Language Composition for the Masses 16 / 19
  35. 35. Results R1: Concern Encapsulation ✅ R3: Incremental Compilation ✅ ⇒ Eclipse Plug-in based. R2: Explicit Required Interface ✅ ⇒ Required annotations on EMF classes. R4: Concern Substitutability ✅ ⇒ Lua replaced by 2 toy languages for expressions and actions. R5: Non-intrusivity ✅ ⇒ Based on EMF and Java. Modular Language Composition for the Masses 17 / 19
  36. 36. Conclusion & Future Work
  37. 37. Take Away Implementation pattern enhancing language composability; Generative approach to abstract the implementation pattern; Alternative to the standard EMF Switch, improving extensibility and composability. Seamlessly integrated with EMF (and Java) Type safe Modular, Extensible, Composable, Reusable Modular Language Composition for the Masses 18 / 19
  38. 38. Future Work Toward language product lines and language families; Dedicated binding language for glue definition. Modular Language Composition for the Masses 19 / 19
  39. 39. EOF

×