21
LangDev Meeting, March, 2018, Amsterdam, NL. Execution Framework of the GEMOC Studio BENOIT COMBEMALE PROFESSOR, UNIV. TOULOUSE, FRANCE HTTP://COMBEMALE.FR [email protected] @BCOMBEMALE

Execution Framework of the GEMOC Studio

Embed Size (px)

Citation preview

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

PacMan!

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

CONCLUSION AND PERSPECTIVES

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