An Evaluation of Domain-Specific Language Technologies for Code Generation

Software systems are becoming increasingly complex, requiring a deep knowledge to work and program with them. This is especially true for simulation frameworks used by scientists and engineers, but also applies to completely different domains such as mobile or web applications. To ease working with these systems, domain-specific languages (DSLs) are a convenient way to enable domain experts describe settings and problems they want to solve using terms familiar to them. Building upon this specification in the DSL, a compiler transform this to the target software framework, e.,g., runnable program code. To write such a compiler, a solid implementation framework is needed. In this paper, we propose criteria for the evaluation of textual programming language implementation frameworks to which we accordingly evaluate four technologies, namely Spoofax/IMP, Rascal MPL, a custom approach using C++ and a custom approach using Scala.

[1]  Paul Klint,et al.  Program Analysis Scenarios in Rascal , 2012, WRLA.

[2]  Eelco Visser,et al.  Stratego/XT 0.17. A language and toolset for program transformation , 2008, Sci. Comput. Program..

[3]  Martin Odersky,et al.  Programming in Scala , 2008 .

[4]  Eelco Visser,et al.  Program Transformation with Scoped Dynamic Rewrite Rules , 2006, Fundam. Informaticae.

[5]  Naveneetha Vasudevan,et al.  Comparative Study of DSL Tools , 2011, WGT@ETAPS.

[6]  Jürgen Teich,et al.  Towards Domain-Specific Computing for Stencil Codes in HPC , 2012, 2012 SC Companion: High Performance Computing, Networking Storage and Analysis.

[7]  M Mernik,et al.  When and how to develop domain-specific languages , 2005, CSUR.

[8]  Arie van Deursen,et al.  The ASF+SDF Meta-environment: A Component-Based Language Development Environment , 2001 .

[9]  Jürgen Teich,et al.  Generating Device-specific GPU Code for Local Operators in Medical Imaging , 2012, 2012 IEEE 26th International Parallel and Distributed Processing Symposium.

[10]  Paul Klint,et al.  The syntax definition formalism SDF—reference manual— , 1989, SIGP.

[11]  Eric Darve,et al.  Liszt: A domain specific language for building portable mesh-based PDE solvers , 2011, 2011 International Conference for High Performance Computing, Networking, Storage and Analysis (SC).

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

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

[14]  H. Conrad Cunningham,et al.  A little language for surveys: constructing an internal DSL in Ruby , 2008, ACM-SE 46.

[15]  P. Klint,et al.  Efficient annotated terms , 2000 .

[16]  Arie van Deursen,et al.  The Asf+Sdf Meta-Environment: a Component-Based Language Development Environment , 2001, LDTA@ETAPS.

[17]  Bjarne Stroustrup,et al.  Open pattern matching for C++ , 2013, GPCE '13.

[18]  Jürgen Teich,et al.  Frameworks for Multi-core Architectures: A Comprehensive Evaluation Using 2D/3D Image Registration , 2011, ARCS.

[19]  Eelco Visser,et al.  The Spoofax language workbench , 2010, SPLASH/OOPSLA Companion.

[20]  Eelco Visser,et al.  WebDSL: A Case Study in Domain-Specific Language Engineering , 2007, GTTSE.

[21]  Paul Klint,et al.  On the impact of DSL tools on the maintainability of language implementations , 2010, LDTA.

[22]  Jürgen Teich,et al.  Frameworks for GPU Accelerators: A comprehensive evaluation using 2D/3D image registration , 2011, 2011 IEEE 9th Symposium on Application Specific Processors (SASP).

[23]  Paul Klint,et al.  Rascal: Language technology for model-driven engineering , 2011 .

[24]  Bjarne Stroustrup,et al.  Open pattern matching for C , 2014 .

[25]  Jeroen van den Bos Rascal : Language Technology for Model-Driven Engineering , 2011 .

[26]  Vicente Pelechano,et al.  Building Tools for Model Driven Development. Comparing Microsoft DSL Tools and Eclipse Modeling Plug-ins , 2006, DSDM.

[27]  Martin Odersky,et al.  An Overview of the Scala Programming Language , 2004 .

[28]  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.

[29]  Bohn Stafleu van Loghum,et al.  Online … , 2002, LOG IN.

[30]  Maria João Varanda Pereira,et al.  Domain specific languages: a theoretical survey , 2009 .