Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Execution Framework of the GEMOC Studio

106 views

Published on

The development and evolution of an advanced IDE for a Domain-Specific Language (DSL) is a tedious task. Recent efforts in language workbenches result in frameworks that automatically provide syntactic tooling such as advanced editors. However, defining the execution semantics of languages and their tooling remains mostly hand crafted. Similarly to editors that share code completion or syntax highlighting, the development of advanced debuggers, animators, and others execution analysis tools shares common facilities, which should be reused among various DSLs.

In this talk, I will present and make a demo of the execution framework offered by the GEMOC studio, an Eclipse-based language and modeling workbench. The framework provides a generic interface to plug-in different execution engines associated to their specific metalanguages used to define the discrete-event operational semantics of DSMLs (e.g., Kermeta/Xtend, xMOF, ALE…). It also integrates generic runtime services that are shared among the approaches used to implement the execution semantics, such as graphical animation and omniscient debugging (provided by Sirius Animator).

Published in: Software
  • Be the first to comment

  • Be the first to like this

Execution Framework of the GEMOC Studio

  1. 1. LangDev Meeting, March, 2018, Amsterdam, NL. Execution Framework of the GEMOC Studio BENOIT COMBEMALE PROFESSOR, UNIV. TOULOUSE, FRANCE HTTP://COMBEMALE.FR BENOIT.COMBEMALE@IRIT.FR @BCOMBEMALE
  2. 2. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 The GEMOC Studio - 2 Design and integrate your executable DSMLs http://gemoc.org/studio soon http://eclipse.org/gemoc Language Workbench Modeling Workbench Edit, simulate and animate your heterogeneous models
  3. 3. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 The GEMOC Studio - 3 http://gemoc.org/studio
  4. 4. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 The GEMOC Studio - 4 Benoit Combemale, Julien Deantoni, Olivier Barais, Arnaud Blouin, Erwan Bousse, Cédric Brun, Thomas Degueule and Didier Vojtisek, "A Solution to the TTC'15 Model Execution Case Using the GEMOC Studio," In 8th Transformation Tool Contest (TTC), 2015. Overall Winner http://gemoc.org/studio
  5. 5. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 The GEMOC Execution Framework - 5 Trace metamodel and constructor Model Animator Execution Framework Operational Semantics Metaprogramming Approach (Kermeta/Xtend/Java, MoCCML, xMOF, BCOoL) Ecore aRunning Model timeline, control panel, omniscient debugger, VCD Concrete Syntax Graphical representation Sirius Graphical representation Interpreter Diagram Model Editor Diagram Execution Rules Execution State Abstract Syntax Domain Model (Metamodel) Legend code generation <<dependsOn>> <<conformsTo>> Language Framework Modeling Framework "Execution Framework of the GEMOC Studio (Tool Demo)", by Erwan Bousse, Thomas Degueule, Didier Vojtisek, Tanja Mayerhofer, Julien Deantoni, and Benoit Combemale. Proceedings of the 2016 ACM SIGPLAN International Conference on Software Language Engineering (SLE), Oct 2016, Amsterdam, NL.
  6. 6. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 Execution Engine - 6 ▸API ▸ initialize (load the xDSL/model, feed the initial parameters…) ▸ execute ▸ add or remove addons ▸ access the current stack of execution steps ▸ get or set the engine status (started, paused, stopped, etc.) ▸ access the execution context (e.g., the model, the execution mode) ▸ start/stop the engine ▸ create an execution step ▸Concrete implementations ▸ Java/Xtend/K3, ▸ ALE, ▸ xMOF ▸ MoCCML ▸ BCOoL
  7. 7. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 Addons - 7 ▸API (synchronously called by the execution framework) ▸ engineStarted / engineStopped ▸ aboutToExecuteStep / stepExecuted ▸Concrete implementations ▸ Graphical animator ▸ Execution trace manager ▸ Omniscient debugger ▸ VCD ▸ Stimuli manager ▸ Step decider
  8. 8. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 DIY: Arduino Designer
  9. 9. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 Ecore Tools: Graphical Edition of Ecore Models
  10. 10. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 Ecore Tools: ALE open class arduino.Block { def void execute() { for (i in self.instructions) { i.execute(); } } } http://gemoc.org/ale-lang open class arduino.If { @step def void execute() { if (self.condition.evaluate()) { self.block.execute(); } else { if (self.elseBlock != null) { self.elseBlock.execute(); } } } }
  11. 11. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 SiriusAnimator simulator.odesign customizing arduino.odesign: Contributing actions: Adapting style:
  12. 12. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 ArduinoDesigner https://github.com/gemoc/arduinomodeling
  13. 13. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 PacMan!
  14. 14. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 ActivityDiagramDebugger - 14 https://github.com/gemoc/activitydiagram
  15. 15. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 ActivityDiagramDebugger - 15 Benoit Combemale, Julien Deantoni, Matias Vara Larsen, Frédéric Mallet, Olivier Barais, Benoit Baudry, Robert France, "Reifying Concurrency for Executable Metamodeling," In Software Language Engineering (SLE), 2013
  16. 16. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 Behavioral Model Coordination - 16 Matias Ezequiel Vara Larsen, Julien Deantoni, Benoit Combemale, Frédéric Mallet, "A Behavioral Coordination Operator Language (BCOoL)," In MODELS 2015
  17. 17. CONCLUSION AND PERSPECTIVES
  18. 18. Take Away Messages ▸GEMOC Studio for ▸ Modular and reusable language design and implementation ▸ Executable modeling, incl. simulation, animation and debugging ▸ DSL globalization, incl. concurrent execution, lg composition, etc. ▸ Further SLE R&T (community-wide research platform) ▸Main rationales for executability ▸ Set of dedicated and related meta-languages ▸ Explicit structural and behavioral language interfaces ▸ Execution Framework providing a behavioral protocol for execution, simulation and debugging ▸ Generative approach for execution trace management Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018
  19. 19. Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018 Ongoing Work • Executability: ▸ Behavioral interface inference for executable DSLs (Leroy’s PhD, with TU Wien) ▸ Bus to bridge technological spaces (with CWI) ▸ Web-based, dynamically reconfigurable micro-service architecture for modeling environment (Coulon’s PhD, with Obeo) ▸ Concurrent metaprogramming, applied to live modeling and design space exploration (Megna’s PhD, with Safran) ☞ Investigate a new (event-based) metaprogramming model for executable DSL Design & Implementation • Reusability: ▸ Unified metaprogramming model for variability management, customization and composition (Leduc’s PhD, with DGA)
  20. 20. Execution Framework of the GEMOC Studio Abstract. The development and evolution of an advanced IDE for a Domain-Specific Language (DSL) is a tedious task. Recent efforts in language workbenches result in frameworks that automatically provide syntactic tooling such as advanced editors. However, defining the execution semantics of languages and their tooling remains mostly hand crafted. Similarly to editors that share code completion or syntax highlighting, the development of advanced debuggers, animators, and others execution analysis tools shares common facilities, which should be reused among various DSLs. In this talk, I will present and make a demo of the execution framework offered by the GEMOC studio, an Eclipse-based language and modeling workbench. The framework provides a generic interface to plug-in different execution engines associated to their specific metalanguages used to define the discrete-event operational semantics of DSMLs (e.g., Kermeta/Xtend, xMOF, ALE…). It also integrates generic runtime services that are shared among the approaches used to implement the execution semantics, such as graphical animation and omniscient debugging (provided by Sirius Animator). Execution Framework of the GEMOC Studio Benoit Combemale @ LangDev Meeting, March, 2018
  21. 21. Hack your own languages? Join us in the SM@RT group of the CNRS IRIT lab! Open Positions for SE, PhD and Postdoc BENOIT COMBEMALE PROFESSOR, UNIV. TOULOUSE, FRANCE HTTP://COMBEMALE.FR BENOIT.COMBEMALE@IRIT.FR @BCOMBEMALE

×