LangDev Meeting, March, 2018, Amsterdam, NL.
Execution Framework of the GEMOC Studio
BENOIT COMBEMALEPROFESSOR, UNIV. TOULOUSE, FRANCE
HTTP://COMBEMALE.FR [email protected]@BCOMBEMALE
Execution Framework of the GEMOC StudioBenoit Combemale @ LangDev Meeting, March, 2018
The GEMOC Studio
- 2
Design and integrate your executable DSMLs
http://gemoc.org/studio
soonhttp://eclipse.org/gemoc
LanguageWorkbench
ModelingWorkbench
Edit, simulate and animate your heterogeneous models
Execution Framework of the GEMOC StudioBenoit Combemale @ LangDev Meeting, March, 2018
The GEMOC Studio
- 3
http://gemoc.org/studio
Execution Framework of the GEMOC StudioBenoit 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
Execution Framework of the GEMOC StudioBenoit 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
aRunningModeltimeline, 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>>
LanguageFramework
ModelingFramework
"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.
Execution Framework of the GEMOC StudioBenoit 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
Execution Framework of the GEMOC StudioBenoit 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
Execution Framework of the GEMOC StudioBenoit Combemale @ LangDev Meeting, March, 2018
DIY: Arduino Designer
Execution Framework of the GEMOC StudioBenoit Combemale @ LangDev Meeting, March, 2018
Ecore Tools: Graphical Edition of Ecore Models
Execution Framework of the GEMOC StudioBenoit 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 {@stepdef void execute() {
if (self.condition.evaluate()) {self.block.execute();
} else {if (self.elseBlock != null) {
self.elseBlock.execute();}
}}
}
Execution Framework of the GEMOC StudioBenoit Combemale @ LangDev Meeting, March, 2018
SiriusAnimator
simulator.odesign customizing arduino.odesign: Contributing actions:
Adapting style:
Execution Framework of the GEMOC StudioBenoit Combemale @ LangDev Meeting, March, 2018
Arduino Designer
https://github.com/gemoc/arduinomodeling
Execution Framework of the GEMOC StudioBenoit Combemale @ LangDev Meeting, March, 2018
Activity Diagram Debugger
-14
https://github.com/gemoc/activitydiagram
Execution Framework of the GEMOC StudioBenoit Combemale @ LangDev Meeting, March, 2018
Activity Diagram Debugger
-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 LanguageEngineering (SLE), 2013
Execution Framework of the GEMOC StudioBenoit Combemale @ LangDev Meeting, March, 2018
Behavioral Model Coordination
-16
Matias Ezequiel Vara Larsen, Julien Deantoni, Benoit Combemale, Frédéric Mallet, "A BehavioralCoordination Operator Language (BCOoL)," In MODELS 2015
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 StudioBenoit Combemale @ LangDev Meeting, March, 2018
Execution Framework of the GEMOC StudioBenoit 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)
Execution Framework of the GEMOC Studio
Abstract.The development and evolution of an advanced IDE for a Domain-SpecificLanguage (DSL) is a tedious task. Recent efforts in language workbenches result inframeworks that automatically provide syntactic tooling such as advanced editors.However, defining the execution semantics of languages and their tooling remainsmostly hand crafted. Similarly to editors that share code completion or syntaxhighlighting, the development of advanced debuggers, animators, and othersexecution analysis tools shares common facilities, which should be reused amongvarious DSLs.
In this talk, I will present and make a demo of the execution framework offered bythe GEMOC studio, an Eclipse-based language and modeling workbench. Theframework provides a generic interface to plug-in different execution enginesassociated to their specific metalanguages used to define the discrete-eventoperational semantics of DSMLs (e.g., Kermeta/Xtend, xMOF, ALE…). It alsointegrates generic runtime services that are shared among the approaches used toimplement the execution semantics, such as graphical animation and omniscientdebugging (provided by Sirius Animator).
Execution Framework of the GEMOC StudioBenoit Combemale @ LangDev Meeting, March, 2018
Hack your own languages?Join us in the SM@RT group of the CNRS IRIT lab!
Open Positions for SE, PhD and Postdoc
BENOIT COMBEMALEPROFESSOR, UNIV. TOULOUSE, FRANCE
HTTP://COMBEMALE.FR [email protected]@BCOMBEMALE
Top Related