DSL evolution through composition

The use of domain specific languages (DSL), instead of general purpose languages introduces a number of advantages in software development even if could be problematic to maintain the DSL consistent with the evolution of the domain. Traditionally, to develop a compiler/interpreter from scratch but also to modify an existing compiler to support the novel DSL is a long and difficult task. We have developed Neverlang to simplify and speed up the development and maintenance of DSLs. The framework presented in this article not only allows to develop the syntax and the semantic of a new language from scratch but it is particularly focused on the reusability of the language definition. The interpreters/compilers produced with such a framework are modular and it is easy to add remove or modify their sections. This allows to modify the DSL definition in order to follow the evolution of the underneath domain. In this work, we explore the Neverlang framework and try out the adaptability of its language definition.

[1]  Arie van Deursen,et al.  Little languages: little maintenance , 1998 .

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

[3]  Arie van Deursen,et al.  Domain-specific languages: an annotated bibliography , 2000, SIGP.

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

[5]  Walter Cazzola,et al.  Sectional domain specific languages , 2009, DSAL '09.

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

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

[8]  Görel Hedin,et al.  JastAdd--an aspect-oriented compiler construction system , 2003, Sci. Comput. Program..

[9]  Jack Greenfield Software Factories: Assembling Applications with Patterns, Models, Frameworks and Tools , 2004, GPCE.

[10]  J. Christopher Ramming,et al.  Two Application languages in software production , 1994 .

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

[12]  Torbjörn Ekman,et al.  The jastadd extensible java compiler , 2007, OOPSLA.

[13]  Michael R. Clarkson,et al.  Polyglot: An Extensible Compiler Framework for Java , 2003, CC.

[14]  Stuart Kent,et al.  Model Driven Engineering , 2002, IFM.

[15]  Steve Freeman,et al.  Evolving an embedded domain-specific language in Java , 2006, OOPSLA '06.

[16]  Jendrik Johannes Controlling Model-Driven Software Development through Composition Systems , 2009 .

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

[18]  S. Dmitriev Language Oriented Programming: The Next Programming Paradigm , 2004 .