Variability Support in Domain-Specific Language Development

Domain Specific Languages (DSLs) are widely adopted to capitalize on business domain experiences. Consequently, DSL development is becoming a recurring activity. Unfortunately, even though it has its benefits, language development is a complex and time-consuming task. Languages are commonly realized from scratch, even when they share some concepts and even though they could share bits of tool support. This cost can be reduced by employing modern modular programming techniques that foster code reuse. However, selecting and composing these modules is often only within the reach of a skilled DSL developer. In this paper we propose to combine modular language development and variability management, with the objective of capitalizing on existing assets. This approach explicitly models the dependencies between language components, thereby allowing a domain expert to configure a desired DSL, and automatically derive its implementation. The approach is tool supported, using Neverlang to implement language components, and the Common Variability Language (CVL) for managing the variability and automating the configuration. We will further illustrate our approach with the help of a case study, where we will implement a family of DSLs to describe state machines.

[1]  Viljem Zumer,et al.  Incremental programming language development , 2005, Comput. Lang. Syst. Struct..

[2]  Aniruddha S. Gokhale,et al.  Improving Domain-Specific Language Reuse with Software Product Line Techniques , 2009, IEEE Software.

[3]  Markus Völter,et al.  Language modularity with the MPS language workbench , 2012, 2012 34th International Conference on Software Engineering (ICSE).

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

[5]  Lianping Chen,et al.  A systematic review of evaluation of variability management approaches in software product lines , 2011, Inf. Softw. Technol..

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

[7]  Paul Grünbacher,et al.  Requirements for product derivation support: Results from a systematic literature review and an expert survey , 2010, Inf. Softw. Technol..

[8]  Pascal Fradet,et al.  Unconventional Programming Paradigms , 2008 .

[9]  Edoardo Vacchi,et al.  Neverlang 2 - Componentised Language Development for the JVM , 2013, SC@STAF.

[10]  Iulian Ober,et al.  SDL 2011: Integrating System and Software Modeling , 2011, Lecture Notes in Computer Science.

[11]  Bernhard Rumpe,et al.  Variability within Modeling Language Definitions , 2009, MoDELS.

[12]  Michelle L. Crane,et al.  UML vs. classical vs. rhapsody statecharts: not all models are created equal , 2005, MoDELS'05.

[13]  Apostolos Syropoulos,et al.  Steps in Scala: The expression problem , 2010 .

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

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

[16]  Paul Clements,et al.  Software product lines - practices and patterns , 2001, SEI series in software engineering.

[17]  Birger Møller-Pedersen,et al.  Adding Standardized Variability to Domain Specific Languages , 2008, 2008 12th International Software Product Line Conference.

[18]  Mark Rouncefield,et al.  Empirical assessment of MDE in industry , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[19]  Krzysztof Czarnecki,et al.  Overview of Generative Software Development , 2004, UPP.

[20]  Maria João Varanda Pereira,et al.  Automatic generation of language-based tools using the LISA system , 2005, IEE Proc. Softw..

[21]  Olivier Barais,et al.  Model Driven Language Engineering with Kermeta , 2009, GTTSE.

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

[23]  Alfred V. Aho,et al.  Compilers: Principles, Techniques, and Tools , 1986, Addison-Wesley series in computer science / World student series edition.

[24]  Sven Apel,et al.  Feature-oriented language families: a case study , 2013, VaMoS.

[25]  Klaus Pohl,et al.  Variability management in software product line engineering , 2006, ICSE.

[26]  Arie van Deursen,et al.  Domain-specific language design requires feature descriptions , 2002 .

[27]  Birger Møller-Pedersen,et al.  Standardizing Variability - Challenges and Solutions , 2011, SDL Forum.

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

[29]  Walter Cazzola Domain-Specific Languages in Few Steps - The Neverlang Approach , 2012, SC@TOOLS.

[30]  Andreas Classen,et al.  A Preliminary Review on the Application of Feature Diagrams in Practice , 2010, VaMoS.

[31]  Steffen Zschaler,et al.  A Role-Based Approach towards Modular Language Engineering , 2009, SLE.