Reifying the concurrency concern into xDSML specifications

14
Benoit Combemale (Inria & Univ. Rennes 1) http://people.irisa.fr/Benoit.Combemale [email protected] @bcombemale Reifying the concurrency concern into xDSML specifications Final workshop of the ANR project GEMOC March 17 th , 2016

Transcript of Reifying the concurrency concern into xDSML specifications

Page 1: Reifying the concurrency concern into xDSML specifications

Benoit Combemale (Inria & Univ. Rennes 1)http://people.irisa.fr/[email protected]@bcombemale

Reifying the concurrency concern into xDSML specificationsFinal workshop of the ANR project GEMOCMarch 17th, 2016

Page 2: Reifying the concurrency concern into xDSML specifications

- 2

Arduino Designer (& Debugger)

https://github.com/gemoc/arduinomodeling

Debugging and Concurrent Execution of Heterogeneous Models – GEMOC Workshop (Mar., 2016)

• Graphical animation• Breakpoint definition on model element• Multi-dimensional and efficient trace

management• Model debugging facilities (incl., timeline,

step backward, stimuli management, etc.)• Concurrency simulation and formal analysis

Modern platforms are highly parallel (e.g., many-core, GPGPU, distributed platform).

Complex software systems are highly concurrent systems per

se (e.g., IoT, CPS).

Page 3: Reifying the concurrency concern into xDSML specifications

Reifying Concurrency in xDSML: Limitations

- 3

• Concurrency remains implicit and ad-hoc in language design and implementation:

• Design: implicitly inherited from the meta-language used• Implementation: mostly embedded in the underlying execution

environment

• The lack of an explicit concurrency specification in language design prevents:

• leveraging the concurrency concern of a particular domain or platform• a complete understanding of the behavioral semantics• effective concurrency-aware analysis techniques• effective techniques for producing semantic variants• analysis of the deployment on parallel architectures

Reifying the concurrency concern into xDSML specifications – GEMOC Workshop (Mar., 2016)

Page 4: Reifying the concurrency concern into xDSML specifications

Reifying Concurrency in xDSML: Grand Challenge

- 4

Cross fertilization in languages of the algorithm theory and the

concurrency theory

Leslie Lamport, “Turing Lecture: The Computer Science of Concurrency: The Early Years,” Com. ACM, vol. 58, no. 6, 2015, pp. 71–76.

"Concurrency models were generally event-based, and avoided the use of state. They did not easily describe algorithms or the usualway of thinking about them based on the standard model."

Reifying the concurrency concern into xDSML specifications – GEMOC Workshop (Mar., 2016)

Page 5: Reifying the concurrency concern into xDSML specifications

Reifying Concurrency in xDSML: Approach

- 5

Kermeta

ModHel'X

AbstractSyntax(AS)

ConcreteSyntax(CS)

Mas�cs Mas�sd

SemanticDomain(SD)

AbstractSyntax(AS)

ConcreteSyntax(CS)

MoC

Domain-SpecificActions

Mas�cs

Benoit Combemale, Cécile Hardebolle, Christophe Jacquet, Frédéric Boulanger, Benoit Baudry, "Bridgingthe Chasm between Executable Metamodeling and Models of Computation," In Software LanguageEngineering (SLE), 2012.

Reifying the concurrency concern into xDSML specifications – GEMOC Workshop (Mar., 2016)

Page 6: Reifying the concurrency concern into xDSML specifications

Reifying Concurrency in xDSML: Approach

- 6

Semantics

AS DSA MOC

Static Introduction

Delegation Pattern

Domain Model

Exec. function and data

Concurrency Model

The MoCC serves as a (family of) scheduler(s) of the executionfunctions that manipulate the execution data (i.e. program state)

Benoit Combemale, Cécile Hardebolle, Christophe Jacquet, Frédéric Boulanger, Benoit Baudry, "Bridgingthe Chasm between Executable Metamodeling and Models of Computation," In Software LanguageEngineering (SLE), 2012.

Reifying the concurrency concern into xDSML specifications – GEMOC Workshop (Mar., 2016)

Page 7: Reifying the concurrency concern into xDSML specifications

Reifying Concurrency in xDSML: Approach

- 7

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

Semantics

AS DSA MOC

DSE (Domain Specific

Event) • Data • Control • Communication

The DSE serve as a mapping from the MOC to the DSA

Reifying the concurrency concern into xDSML specifications – GEMOC Workshop (Mar., 2016)

Page 8: Reifying the concurrency concern into xDSML specifications

Reifying Concurrency in xDSML: Approach

- 8

Florent Latombe, Xavier Crégut, Benoît Combemale, Julien DeAntoni, Marc Pantel, "Weaving concurrencyin executable domain-specific modeling languages," In Software Language Engineering (SLE), 2015

Semantics

AS DSA MOC

DSE (Domain Specific

Event) • Data • Control • Communication

The DSEs serve as a protocol between the MOC and the DSA

Reifying the concurrency concern into xDSML specifications – GEMOC Workshop (Mar., 2016)

Page 9: Reifying the concurrency concern into xDSML specifications

Reifying Concurrency in xDSML: Contribution

- 9

Model of Concurrency & Communication

Domain-Specific Actions

Abstract Syntax

Domain-SpecificEvents

Reifying the concurrency concern into xDSML specifications – GEMOC Workshop (Mar., 2016)

Page 10: Reifying the concurrency concern into xDSML specifications

Reifying Concurrency in xDSML: Contribution

- 10

Model of Concurrency & Communication

Domain-Specific Actions

Abstract Syntax

Domain-SpecificEvents

0..*

DSAMoCC

DSE

Concept0..*Concepts

(from Las)

ExecutionFunction(from Ldsa)

Las

Event(from Lmoc)

Ldsa

Ldse

Lmocc

Event0..*

* *

Constraint0..*

0..*

Legend

<<dependsOn>>

<<conformsTo>>

Property

type1Execution

State

0..*ExecutionFunction

0..*

0..*

EcoreKermetaMoccML

GEL/ECL

Reifying the concurrency concern into xDSML specifications – GEMOC Workshop (Mar., 2016)

Page 11: Reifying the concurrency concern into xDSML specifications

(executable)Model

(executable)ModelingLanguage

MetamodelingLanguages

MoccML Kermeta Ecore

MoC.lib.moc(MoC)

MyDSML.xtend (DSA)

MyDSML.ecore(AS)

GEL/ECL

DSE4MyDSML.gel

(MoC<->DSA)

aModelMyDSMLDSA-AS.jar

MyDSMLConcurrencyModel.mocLegend

code generation

<<dependsOn>>

<<conformsTo>>

Reifying Concurrency in xDSML: Contribution

- 11Reifying the concurrency concern into xDSML specifications – GEMOC Workshop (Mar., 2016)

Page 12: Reifying the concurrency concern into xDSML specifications

The GEMOC Studio

- 12

http://gemoc.org/studio/

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

Reifying the concurrency concern into xDSML specifications – GEMOC Workshop (Mar., 2016)

Page 13: Reifying the concurrency concern into xDSML specifications

- 13

Activity Diagram Debugger

https://github.com/gemoc/activitydiagram

Reifying the concurrency concern into xDSML specifications – GEMOC Workshop (Mar., 2016)

Page 14: Reifying the concurrency concern into xDSML specifications

Coping with Semantic Variation Points

- 14

Florent Latombe, Xavier Crégut, Julien Deantoni, Marc Pantel, Benoit Combemale, "Coping withSemantic Variation Points in Domain-Specific Modeling Languages", In EXE@MoDELS 2015.

Reifying the concurrency concern into xDSML specifications – GEMOC Workshop (Mar., 2016)