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).
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
Execution Framework of the GEMOC Studio
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. 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. Execution Framework of the GEMOC Studio
Benoit Combemale @ LangDev Meeting, March, 2018
The GEMOC Studio
- 3
http://gemoc.org/studio
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. 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. 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. 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. Execution Framework of the GEMOC Studio
Benoit Combemale @ LangDev Meeting, March, 2018
DIY: Arduino Designer
9. Execution Framework of the GEMOC Studio
Benoit Combemale @ LangDev Meeting, March, 2018
Ecore Tools: Graphical Edition of Ecore Models
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. Execution Framework of the GEMOC Studio
Benoit Combemale @ LangDev Meeting, March, 2018
SiriusAnimator
simulator.odesign customizing arduino.odesign: Contributing actions:
Adapting style:
12. Execution Framework of the GEMOC Studio
Benoit Combemale @ LangDev Meeting, March, 2018
ArduinoDesigner
https://github.com/gemoc/arduinomodeling
13. Execution Framework of the GEMOC Studio
Benoit Combemale @ LangDev Meeting, March, 2018
PacMan!
14. Execution Framework of the GEMOC Studio
Benoit Combemale @ LangDev Meeting, March, 2018
ActivityDiagramDebugger
-
14
https://github.com/gemoc/activitydiagram
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. 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
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. 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. 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. 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