A Generic Framework for Representing and Analysing Model Concurrency

Abstract

Recent results in language engineering simplify the definition of tool-supported executable domain-specific modelling languages (xDSMLs), including editing (e.g.,completion and error checking) and execution analysis tools (e.g., debugging, monitoring and live modelling). However, such frameworks are currently limited to sequential execution traces, and cannot handle execution traces resulting from an execution semantics with a concurrency model supporting parallelism or interleaving. This prevents the development of concurrency analysis tools, like debuggers supporting the exploration of model executions resulting from different interleavings. In this paper, we present a generic framework to integrate execution semantics with explicit concurrency models, to explore the possible execution traces of conforming models, and to define strategies for helping in the exploration of the possible executions. This framework is complemented with a protocol to interact with the resulting executions and hence to build advanced concurrency analysis tools. The approach has been implemented within the GEMOC Studio. We demonstrate how to integrate two representative concurrent meta-programming approaches (MoCCML/Java andHenshin), which use different means to define an xDSML’s concurrency model. We also demonstrate the ability to define an advanced concurrent omniscient debugger with the proposed protocol. The paper, thus, contributes key abstractions and an associated protocol for integrating concurrent meta-programming approaches in a language workbench, and dynamically exploring the possible executions of a model in the modelling workbench.

Authors

Implementation source code

The source code of the implementation described in the paper can be found in specific branches of four Github repositories:

All the code is open-source (EPL-1.0).

Implementation build

A complete working build of the GEMOC Studio containing the proposed implementation is available here:

Videos