Reifying Concurrency for Executable Metamodeling

Current metamodeling techniques can be used to specify the syntax and semantics of domain specific modeling languages (DSMLs). Still, there is little support for explicitly specifying concurrency semantics of DSMLs. Often, such semantics are provided by the implicit concurrency model of the execution environment supported by the language workbench used to implement the DSMLs. The lack of an explicit concurrency model has several drawbacks: it prevents from developing a complete understanding of the DSML’s behavioral semantics, as well as effective concurrency-aware analysis techniques, and explicit models of semantic variants. This work reifies concurrency as a metamodeling facility, leveraging formalization work from the concurrency theory and models of computation (MoC) community. The essential contribution of this paper is a language workbench for binding domain-specific concepts and models of computation through an explicit event structure at the metamodel level. We present a case study that serves to demonstrate the utility of the novel metamodeling facilities and clarify the scope of the approach.

[1]  Bernhard Rumpe,et al.  MontiCore: Modular Development of Textual Domain Specific Languages , 2008, TOOLS.

[2]  Jochen Ludewig,et al.  Models in software engineering – an introduction , 2003, Software and Systems Modeling.

[3]  Antonio Vallecillo,et al.  Objects, Models, Components, Patterns , 2011, Lecture Notes in Computer Science.

[4]  Paul Klint,et al.  A meta-environment for generating programming environments , 1989, TSEM.

[5]  James R. Cordy,et al.  TXL: A Rapid Prototyping System for Programming Language Dialects , 1991, Comput. Lang..

[6]  Torbjörn Ekman,et al.  The JastAdd system - modular extensible compiler construction , 2007, Sci. Comput. Program..

[7]  Bertrand Meyer,et al.  Eiffel: The Language , 1991 .

[8]  Frédéric Mallet,et al.  ECL: the Event Constraint Language, an Extension of OCL with Events , 2012 .

[9]  Axel Jantsch,et al.  System modeling and transformational design refinement in ForSyDe [formal system design] , 2004, IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems.

[10]  Joseph Sifakis,et al.  Modeling Heterogeneous Real-time Components in BIP , 2006, Fourth IEEE International Conference on Software Engineering and Formal Methods (SEFM'06).

[11]  Laurence Tratt,et al.  Eco: A Language Composition Editor , 2014, SLE.

[12]  Benoît Combemale,et al.  A Design Pattern to Build Executable DSMLs and Associated V&V Tools , 2012, 2012 19th Asia-Pacific Software Engineering Conference.

[13]  Gary T. Leavens,et al.  MultiJava: modular open classes and symmetric multiple dispatch for Java , 2000, OOPSLA '00.

[14]  Jean-Marc Jézéquel,et al.  Combining Aspect and Model-Driven Engineering Approaches for Software Process Modeling and Execution , 2009, ICSP.

[15]  Markus Völter,et al.  Language and IDE Modularization and Composition with MPS , 2011, GTTSE.

[16]  Glynn Winskel,et al.  Event Structures , 1986, Advances in Petri Nets.

[17]  Benoît Combemale,et al.  Bridging the Chasm between Executable Metamodeling and Models of Computation , 2012, SLE.

[18]  Christopher Strachey,et al.  Toward a mathematical semantics for computer languages , 1971 .

[19]  Jean-Marc Jézéquel,et al.  Weaving executability into object-oriented meta-languages , 2005, MoDELS'05.

[20]  Christophe Jacquet,et al.  Semantic Adaptation Using CCSL Clock Constraints , 2011, MoDELS.

[21]  Edward A. Lee,et al.  Taming heterogeneity - the Ptolemy approach , 2003, Proc. IEEE.

[22]  Wolfgang Reisig,et al.  Petri Nets: Applications and Relationships to Other Models of Concurrency , 1986, Lecture Notes in Computer Science.

[23]  Juha-Pekka Tolvanen,et al.  MetaEdit+: defining and using domain-specific modeling languages and code generators , 2003, OOPSLA '03.

[24]  Markus Völter,et al.  From Programming to Modeling - and Back Again , 2011, IEEE Software.

[25]  João Saraiva,et al.  Generative and Transformational Techniques in Software Engineering II , 2007, Lecture Notes in Computer Science.

[26]  Patrick Borras,et al.  Centaur: the system , 1988, Software Development Environments.

[27]  Gordon D. Plotkin,et al.  A structural approach to operational semantics , 2004, J. Log. Algebraic Methods Program..

[28]  Gabor Karsai,et al.  On the Use of Graph Transformation in the Formal Specification of Model Interpreters , 2003, J. Univers. Comput. Sci..

[29]  Julien DeAntoni,et al.  TimeSquare: Treat Your Models with Logical Time , 2012, TOOLS.

[30]  John McCarthy,et al.  Towards a Mathematical Science of Computation , 1962, IFIP Congress.

[31]  Eric Van Wyk,et al.  Forwarding in Attribute Grammars for Modular Language Design , 2002, CC.

[32]  Eelco Visser,et al.  The spoofax language workbench: rules for declarative specification of languages and IDEs , 2010, OOPSLA.

[33]  Vahid Garousi,et al.  Trustworthy Software Development Processes, International Conference on Software Process, ICSP 2009 Vancouver, Canada, May 16-17, 2009 Proceedings , 2009, ICSP.

[34]  C. A. R. Hoare,et al.  Communicating sequential processes , 1978, CACM.

[35]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

[36]  Glynn Winskel,et al.  The formal semantics of programming languages - an introduction , 1993, Foundation of computing series.

[37]  Edward A. Lee,et al.  A framework for comparing models of computation , 1998, IEEE Trans. Comput. Aided Des. Integr. Circuits Syst..

[38]  Lars-Åke Fredlund,et al.  An Implementation of a Translational Semantics for an Imperative Language , 1990, CONCUR.

[39]  David Gries,et al.  The Science of Programming , 1981, Text and Monographs in Computer Science.

[40]  Gabor Karsai,et al.  Model-Integrated Computing , 1997, Computer.

[41]  Frank Budinsky,et al.  EMF: Eclipse Modeling Framework 2.0 , 2009 .

[42]  Donald E. Knuth,et al.  Semantics of context-free languages , 1968, Mathematical systems theory.

[43]  Frédéric Boulanger,et al.  Simulation of Multi-Formalism Models with ModHel'X , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[44]  Robin Milner,et al.  A Calculus of Communicating Systems , 1980, Lecture Notes in Computer Science.

[45]  Konstantin Solomatov,et al.  Language Modularization and Composition with Projectional Language Workbenches illustrated with MPS , 2010 .

[46]  Julien DeAntoni,et al.  The clock constraint specification language for building timed causality models , 2010, Innovations in Systems and Software Engineering.

[47]  C. A. Petri Introduction to General Net Theory , 1979, Advanced Course: Net Theory and Applications.

[48]  Olivier Barais,et al.  Mashup of metalanguages and its implementation in the Kermeta language workbench , 2013, Software & Systems Modeling.

[49]  C. Hardebolle,et al.  Multi-Formalism Modelling and Model Execution , 2009 .

[50]  Steve Cook,et al.  Domain-Specific Development with Visual Studio DSL Tools , 2007 .

[51]  M. Volter From Programming to Modeling - and Back Again , 2011 .

[52]  Lauretta O. Osho,et al.  Axiomatic Basis for Computer Programming , 2013 .