Code generation for a family of executable modelling notations

  • Authors:
  • Adam Prout;Joanne M. Atlee;Nancy A. Day;Pourya Shaker

  • Affiliations:
  • David R. Cheriton School of Computer Science, University of Waterloo, Waterloo, Canada N2L 3G1;David R. Cheriton School of Computer Science, University of Waterloo, Waterloo, Canada N2L 3G1;David R. Cheriton School of Computer Science, University of Waterloo, Waterloo, Canada N2L 3G1;David R. Cheriton School of Computer Science, University of Waterloo, Waterloo, Canada N2L 3G1

  • Venue:
  • Software and Systems Modeling (SoSyM)
  • Year:
  • 2012

Quantified Score

Hi-index 0.00

Visualization

Abstract

We are investigating semantically configurable model-driven engineering (MDE). The goal of this work is a modelling environment that supports flexible, configurable modelling notations, in which specifiers can configure the semantics of notations to suit their needs and yet still have access to the types of analysis tools and code generators normally associated with MDE. In this paper, we describe semantically configurable code generation for a family of behavioural modelling notations. The family includes variants of statecharts, process algebras, Petri Nets, and SDL88. The semantics of this family is defined using template semantics, which is a parameterized structured operational semantics in which parameters represent semantic variation points. A specific notation is derived by instantiating the family's template semantics with parameter values that specify semantic choices. We have developed a code-generator generator (CGG) that creates a suitable Java code generator for a subset of derivable modelling notations. Our prototype CGG supports 26 semantics parameters, 89 parameter values, and 7 composition operators. As a result, we are able to produce code generators for a sizable family of modelling notations, though at present the performance of our generated code is about an order of magnitude slower than that produced by commercial-grade generators.