Domain-Level Observation and Control for Compiled Executable DSLs

MODELS 2019 Foundations Track − Münich, Germany

Erwan Bousse

University of Nantes – LS2N, France

Manuel Wimmer

CDL-MINT, Johannes Kepler University Linz, Austria

Dynamic Analysis of Behavioral Models

  • Behavioral models (eg. state machines) can conveniently describe the behaviors of systems under design.

  • Domain-specific languages (DSLs) can be engineered and used to build such models.

  • Dynamic analyses of behavioral models are crucial in early design phases to see how a described behavior unfolds over time.

Require the possibility to execute models ⚙️!

intro 1

Dynamic Analysis of Behavioral Models

  • Behavioral models (eg. state machines) can conveniently describe the behaviors of systems under design.

  • Domain-specific languages (DSLs) can be engineered and used to build such models.

  • Dynamic analyses of behavioral models are crucial in early design phases to see how a described behavior unfolds over time.

Require the possibility to execute models ⚙️!

intro 2

Dynamic Analysis of Behavioral Models

  • Behavioral models (eg. state machines) can conveniently describe the behaviors of systems under design.

  • Domain-specific languages (DSLs) can be engineered and used to build such models.

  • Dynamic analyses of behavioral models are crucial in early design phases to see how a described behavior unfolds over time.

Require the possibility to execute models ⚙️!

intro 3

Dynamic Analysis of Behavioral Models

  • Behavioral models (eg. state machines) can conveniently describe the behaviors of systems under design.

  • Domain-specific languages (DSLs) can be engineered and used to build such models.

  • Dynamic analyses of behavioral models are crucial in early design phases to see how a described behavior unfolds over time.

Require the possibility to execute models ⚙️!

intro 4

Model execution with an interpreted DSL

interpreted dsl 1

Model execution with an interpreted DSL

interpreted dsl 2

Model execution with an interpreted DSL

interpreted dsl 3

Model execution with an interpreted DSL

interpreted dsl 4

Model execution with an interpreted DSL

interpreted dsl 5

Model execution with an interpreted DSL

interpreted dsl 6

Model execution with an interpreted DSL

interpreted dsl 7

Model execution with an interpreted DSL

interpreted dsl 8

Model execution with an interpreted DSL

interpreted dsl 9

Example of an Interpreted DSL

petrinet
petrinet trace example 7 annotated 1

Example of an Interpreted DSL

petrinet
petrinet trace example 7 annotated 2

Example of an Interpreted DSL

petrinet
petrinet trace example 7 annotated 3

Example of an Interpreted DSL

petrinet
petrinet trace example 7 annotated 4

Debugging/Tracing an interpreted model in the GEMOC Studio

petrinet debug

Question

What about DSLs built with a compiler (eg. a code generator) instead of an interpreter?

Model execution with a compiled DSL

compiled dsl 1

Model execution with a compiled DSL

compiled dsl 2

Model execution with a compiled DSL