Concern-oriented language development (COLD): Fostering reuse in language engineering

Domain-Specific Languages (DSLs) bridge the gap between the problem space, in which stakeholders work, and the solution space, i.e., the concrete artifacts defining the target system. They are usually small and intuitive languages whose concepts and expressive-ness fit a particular domain. DSLs recently found their application in an increasingly broad range of domains, e.g., cyber-physical systems, computational sciences and high performance computing. Despite recent advances, the development of DSLs is error-prone and requires substantial engineering efforts. Techniques to reuse from one DSL to another and to support customization to meet new requirements are thus particularly welcomed. Over the last decade, the Software Language Engineering (SLE) community has proposed various reuse techniques. However, all these techniques remain disparate and complicate the development of real-world DSLs involving different reuse scenarios. In this paper, we introduce the Concern-Oriented Language Development (COLD) approach, a new language development model that promotes modularity and reusability of language concerns. A language concern is a reusable piece of language that consists of usual language artifacts (e.g., abstract syntax, concrete syntax, semantics) and exhibits three specific interfaces that support (1) variability management, (2) customization to a specific context, and (3) proper usage of the reused artifact. The approach is supported by a conceptual model which introduces the required concepts to implement COLD. We also present concrete examples of some language concerns and the current state of their realization with metamodel-based and grammar-based language workbenches. We expect this work to provide insights into how to foster reuse in language specification and implementation, and how to support it in language workbenches.

[1]  Benoît Combemale,et al.  Variability Support in Domain-Specific Language Development , 2013, SLE.

[2]  Tsuyoshi Murata,et al.  {m , 1934, ACML.

[3]  James B. Martin,et al.  Principles of object-oriented analysis and design , 1993, notThenot James Martin Books.

[4]  Bernhard Rumpe,et al.  Code Generator Composition for Model-Driven Engineering of Robotics Component & Connector Systems , 2015, MORSE@STAF.

[5]  Benoît Combemale,et al.  Puzzle: A Tool for Analyzing and Extracting Specification Clones in DSLs , 2016, ICSR.

[6]  Paul Hudak,et al.  Modular Denotational Semantics for Compiler Construction , 1996, ESOP.

[7]  Matthias Schöttle,et al.  On the modularization provided by concern-oriented reuse , 2016, MODULARITY.

[8]  Tijs van der Storm,et al.  Extensible language implementation with object algebras (short paper) , 2015 .

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

[10]  Jan Bosch,et al.  A taxonomy of variability realization techniques , 2005, Softw. Pract. Exp..

[11]  Wilhelm Hasselbring,et al.  Xbase: implementing domain-specific languages for Java , 2012, GPCE '12.

[12]  Ralf Lämmel,et al.  Empirical Language Analysis in Software Linguistics , 2010, SLE.

[13]  Edoardo Vacchi,et al.  On the incremental growth and shrinkage of LR goto-graphs , 2014, Acta Informatica.

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

[15]  Albert Shaqiri,et al.  Formal Attributes Traceability in Modular Language Development Frameworks , 2016, Electron. Notes Theor. Comput. Sci..

[16]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[17]  Benoît Combemale,et al.  Towards a meta-language for the concurrency concern in DSLs , 2015, 2015 Design, Automation & Test in Europe Conference & Exhibition (DATE).

[18]  David Lorge Parnas,et al.  A technique for software module specification with examples , 1972, CACM.

[19]  Juan de Lara,et al.  Pattern-based development of Domain-Specific Modelling Languages , 2015, 2015 ACM/IEEE 18th International Conference on Model Driven Engineering Languages and Systems (MODELS).

[20]  Eelco Visser,et al.  DynSem: A DSL for Dynamic Semantics Specification , 2015, RTA.

[21]  Jean-Marc Jézéquel,et al.  On Language Interfaces , 2017, Present and Ulterior Software Engineering.

[22]  Benoît Combemale,et al.  Execution framework of the GEMOC studio (tool demo) , 2016, SLE.

[23]  Peter D. Mosses,et al.  Modular structural operational semantics , 2004, J. Log. Algebraic Methods Program..

[24]  Juan de Lara,et al.  Generic meta-modelling with concepts, templates and mixin layers , 2010, MODELS'10.

[25]  Gouseti,et al.  UvA-DARE ( Digital Academic Repository ) Extensible Language Implementation with Object Algebras , 2014 .

[26]  Grigore Rosu,et al.  An overview of the K semantic framework , 2010, J. Log. Algebraic Methods Program..

[27]  Tijs van der Storm,et al.  RASCAL: A Domain Specific Language for Source Code Analysis and Manipulation , 2009, 2009 Ninth IEEE International Working Conference on Source Code Analysis and Manipulation.

[28]  D. L. Parnas,et al.  On the criteria to be used in decomposing systems into modules , 1972, Software Pioneers.

[29]  Olivier Barais,et al.  Safe model polymorphism for flexible modeling , 2017, Comput. Lang. Syst. Struct..

[30]  Jacques Klein,et al.  VCU: The Three Dimensions of Reuse , 2016, ICSR.

[31]  Bernhard Rumpe,et al.  Systematically deriving domain-specific transformation languages , 2015, 2015 ACM/IEEE 18th International Conference on Model Driven Engineering Languages and Systems (MODELS).

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

[33]  Frank Budinsky,et al.  Eclipse Modeling Framework , 2003 .

[34]  Olivier Barais,et al.  Revisiting Visitors for Modular Extension of Executable DSMLs , 2017, 2017 ACM/IEEE 20th International Conference on Model Driven Engineering Languages and Systems (MODELS).

[35]  Olivier Barais,et al.  Melange: a meta-language for modular and reusable development of DSLs , 2015, SLE.

[36]  Guy L. Steele,et al.  Growing a Language , 1999, High. Order Symb. Comput..

[37]  Benoît Combemale,et al.  Automating variability model inference for component-based language implementations , 2014, SPLC.

[38]  Olivier Barais,et al.  Reifying Concurrency for Executable Metamodeling , 2013, SLE.

[39]  Edoardo Vacchi,et al.  Neverlang: A framework for feature-oriented language development , 2015, Comput. Lang. Syst. Struct..

[40]  Walter Cazzola,et al.  Choosy and picky: configuration of language product lines , 2015, SPLC.

[41]  Benoît Combemale,et al.  Reverse engineering language product lines from existing DSL variants , 2017, J. Syst. Softw..

[42]  Franck Fleurey,et al.  A Domain Specific Modeling Language Supporting Specification, Simulation and Execution of Dynamic Adaptive Systems , 2009, MoDELS.

[43]  Eelco Visser,et al.  Scannerless Generalized-LR Parsing , 1997 .

[44]  Albert Shaqiri,et al.  Open Programming Language Interpreters , 2017, Art Sci. Eng. Program..

[45]  Krzysztof Czarnecki,et al.  Staged Configuration Using Feature Models , 2004, SPLC.

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

[47]  Eric Van Wyk,et al.  Silver: An extensible attribute grammar system , 2008, Sci. Comput. Program..

[48]  Bernhard Rumpe,et al.  Composition of Heterogeneous Modeling Languages , 2015, MODELSWARD.

[49]  Benoît Combemale,et al.  Leveraging Software Product Lines Engineering in the development of external DSLs: A systematic literature review , 2016, Comput. Lang. Syst. Struct..

[50]  Gerti Kappel,et al.  xMOF: Executable DSMLs Based on fUML , 2013, SLE.

[51]  P ? ? ? ? ? ? ? % ? ? ? ? , 1991 .

[52]  Bernhard Rumpe,et al.  Conceptual Model of the Globalization for Domain-Specific Languages , 2014, Globalizing Domain-Specific Languages.

[53]  Gunter Mussbacher,et al.  Investigation of feature run-time conflicts on goal model-based reuse , 2016, Information Systems Frontiers.

[54]  Brian Randell,et al.  Software engineering : report on a conference sponsored by the NATO Science Committee, Garmisch, Germany, 7th to 11th October 1968 , 1969 .

[55]  Matthias Felleisen,et al.  Semantics Engineering with PLT Redex , 2009 .

[56]  Klaus Pohl,et al.  Software Product Line Engineering - Foundations, Principles, and Techniques , 2005 .

[57]  Kyo Chul Kang,et al.  Feature-Oriented Domain Analysis (FODA) Feasibility Study , 1990 .

[58]  Walter Cazzola,et al.  DSL evolution through composition , 2010, RAM-SE@ECOOP.

[59]  Bernhard Rumpe,et al.  MontiCore: a framework for compositional development of domain specific languages , 2010, International Journal on Software Tools for Technology Transfer.

[60]  Viljem Zumer,et al.  LISA: An Interactive Environment for Programming Language Development , 2002, CC.

[61]  Antonio Vallecillo,et al.  Adding uncertainty and units to quantity types in software models , 2016, SLE.

[62]  Yijun Yu,et al.  Reverse engineering goal models from legacy code , 2005, 13th IEEE International Conference on Requirements Engineering (RE'05).

[63]  Matthew J. Emerson,et al.  Techniques for Metamodel Composition , 2006 .

[64]  Walter Cazzola,et al.  Gradually Learning Programming Supported by a Growable Programming Language , 2016, IEEE Transactions on Emerging Topics in Computing.

[65]  G. G. Stokes "J." , 1890, The New Yale Book of Quotations.

[66]  Benoît Combemale,et al.  A Behavioral Coordination Operator Language (BCOoL) , 2015, 2015 ACM/IEEE 18th International Conference on Model Driven Engineering Languages and Systems (MODELS).

[67]  Bryan Ford,et al.  Parsing expression grammars: a recognition-based syntactic foundation , 2004, POPL '04.

[68]  Sebastian Erdweg,et al.  Language composition untangled , 2012, LDTA.

[69]  Jean-Marc Jézéquel,et al.  Globalized Domain Specific Language Engineering , 2014, Globalizing Domain-Specific Languages.

[70]  Guy L. Steele,et al.  Growing a Language , 1999, High. Order Symb. Comput..

[71]  Laurence Tratt,et al.  Fine-grained Language Composition: A Case Study , 2015, ECOOP.