Shape-diverse DSLs: languages without borders (vision paper)

Domain-Specific Languages (DSLs) manifest themselves in remarkably diverse shapes, ranging from internal DSLs embedded as a mere fluent API within a programming language, to external DSLs with dedicated syntax and tool support. Although different shapes have different pros and cons, combining them for a single language is problematic: language designers usually commit to a particular shape early in the design process, and it is hard to reconsider this choice later. In this new ideas paper, we envision a language engineering approach enabling (i) language users to manipulate language constructs in the most appropriate shape according to the task at hand, and (ii) language designers to combine the strengths of different technologies for a single DSL. We report on early experiments and lessons learned building , our prototype approach to this problem. We illustrate its applicability in the engineering of a simple shape-diverse DSL implemented conjointly in Rascal, EMF, and Java. We hope that our initial contribution will raise the awareness of the community and encourage future research.

[1]  Roy T. Fielding,et al.  Uniform Resource Identifier (URI): Generic Syntax , 2005, RFC.

[2]  T. van deStorm,et al.  Toward Live Domain-Specific Languages: From Text Differencing to Adapting Models at Run Time , 2019 .

[3]  Oszkár Semeráth,et al.  Change Propagation of View Models by Logic Synthesis using SAT solvers , 2016, Bx@ETAPS.

[4]  Kristin Decker,et al.  Uml Distilled A Brief Guide To The Standard Object Modeling Language , 2016 .

[5]  Bran Selic,et al.  A Systematic Approach to Domain-Specific Language Design Using UML , 2007, 10th IEEE International Symposium on Object and Component-Oriented Real-Time Distributed Computing (ISORC'07).

[6]  Markus Völter,et al.  Projecting a Modular Future , 2015, IEEE Software.

[7]  Paul Klint,et al.  EASY Meta-programming with Rascal , 2009, GTTSE.

[8]  Paul Klint,et al.  Model Transformation with Immutable Data , 2016, ICMT.

[9]  Benoît Combemale,et al.  Metamorphic Domain-Specific Languages: A Journey into the Shapes of a Language , 2014, Onward!.

[10]  Jean Bézivin,et al.  Technological Spaces: An Initial Appraisal , 2002 .

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

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

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

[14]  Shigeru Chiba,et al.  Silverchain: a fluent API generator , 2017, GPCE.

[15]  Kendall Scott,et al.  UML distilled - a brief guide to the Standard Object Modeling Language (2. ed.) , 2000, notThenot Addison-Wesley object technology series.

[16]  Roy T. Fielding,et al.  Uniform Resource Identifiers (URI): Generic Syntax , 1998, RFC.

[17]  Markus Voelter,et al.  Generic Tools, Specific Languages , 2014 .

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

[19]  Tijs van der Storm,et al.  Toward live domain-specific languages , 2017, Software & Systems Modeling.