Domain-specific Languages for Modeling and Simulation

Warnke, Tom (2021) Domain-specific Languages for Modeling and Simulation. PhD thesis, Institute for Visual and Analytic Computing, University of Rostock.

Full text not available from this repository.
Official URL:


Simulation models and simulation experiments are increasingly complex. One way to handle this complexity is developing software languages tailored to specific application domains, so-called domain-specific languages (DSLs). This thesis explores the potential of employing DSLs in modeling and simulation. We study different DSL design and implementation techniques and illustrate their benefits for expressing simulation models as well as simulation experiments with several examples. Regarding simulation models, we focus on discrete-event models based on continuoustime Markov chains (CTMCs). Most of our work revolves around ML-Rules, an rule-based modeling language for biochemical reaction networks. First, we relate the expressive power of ML-Rules to other currently available modeling languages for this application domain. Then we define the abstract syntax and operational semantics for ML-Rules, mapping models to CTMCs in an unambiguous and precise way. Based on the formal definitions, we present two approaches to implement ML-Rules as a DSL. The core of both implementations is finding the matches for the patterns on the left side of ML-Rules’ rules. The first approach makes use of ideas from functional programming and realizes ML-Rules as an internal DSL embedded in Scala. The second approach utilizes the language workbench Xtext and object-oriented programming to implement ML-Rules as an external DSL. We relate both approaches to each other and discuss their specific trade-offs, for example regarding computational efficiency. In addition, we demonstrate how DSL implementation techniques can be employed to integrate CTMC-based modeling into Repast Simphony, a software framework for agent-based simulation. Simulation experiments benefit from DSLs in a different way than simulation models. Here, we focus on more technical issues like repeatability, replicability, reproducibility, and reusability of experiments. The utility of DSLs for expressing simulation experiments is illustrated based on two different DSL implementations. First, we discuss SESSL, an object-oriented Scala-based internal DSL, highlighting diverse ways in which DSLs can support effective simulation experimentation. Based on the ideas of SESSL, we also present a Scala-based internal DSL that is implemented in a purely functional fashion, and discuss the implications.

Item Type: Thesis (PhD)