Software Language Engineering

Mechanizing the development of hard-to-write and costly-to-maintain software is the core problem of automated software design. Encoding expert knowledge (a.k.a. dark knowledge) about a software domain is central to its solution. We assert that a solution can be cast in terms of the ideas of language design and engineering. Graph grammars can be a foundation for modern automated software development. The sentences of a grammar are designs of complex dataflow systems. We explain how graph grammars provide a framework to encode expert knowledge, produce correct-by-construction derivations of dataflow applications, enable the generation of high-performance code, and improve how software design of dataflow applications can be taught to undergraduates.

[1]  Jeroen van den Bos,et al.  Bringing domain-specific languages to digital forensics , 2011, 2011 33rd International Conference on Software Engineering (ICSE).

[2]  George C. Necula,et al.  Elkhound: A Fast, Practical GLR Parser Generator , 2003, CC.

[3]  M. Tomita Generalized LR Parsing , 1991, Springer US.

[4]  Eelco Visser,et al.  Declaratively programming the mobile web with Mobl , 2011, OOPSLA '11.

[5]  Mikkel Thorup Disambiguating grammars by exclusion of sub-parse trees , 1996 .

[6]  David H. Lorenz,et al.  Cedalion: a language for language oriented programming , 2011, OOPSLA '11.

[7]  van der,et al.  The Rascal Language Workbench , 2011 .

[8]  Alfred V. Aho,et al.  Deterministic parsing of ambiguous grammars , 1973, POPL.

[9]  Eelco Visser,et al.  Declarative specification of template-based textual editors , 2012, LDTA.

[10]  Bernhard Schätz,et al.  mbeddr: instantiating a language workbench in the embedded software domain , 2013, Automated Software Engineering.

[11]  Annika Aasa,et al.  Precedences in Specifications and Implementations of Programming Languages , 1991, Theor. Comput. Sci..

[12]  J. Rekers,et al.  Parser Generation for Interactive Environments , 1992 .

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

[14]  Kalle Lyytinen,et al.  MetaEdit+: A Fully Configurable Multi-User and Multi-Tool CASE and CAME Environment , 1996, CAiSE.

[15]  João Saraiva,et al.  Lrc - A Generator for Incremental Language-Oriented Tools , 1998, International Conference on Compiler Construction.

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

[17]  Mirko Seifert,et al.  Derivation and Refinement of Textual Syntax for Models , 2009, ECMDA-FA.

[18]  Paul Klint A Meta-Environment for Generating Programming Environments , 1989, Algebraic Methods.

[19]  Eelco Visser,et al.  Declarative Name Binding and Scope Rules , 2012, SLE.

[20]  Adrian Johnstone,et al.  GLL parse-tree generation , 2013, Sci. Comput. Program..

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

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

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

[24]  Jay Earley,et al.  An efficient context-free parsing algorithm , 1970, Commun. ACM.

[25]  Philip Wadler,et al.  A prettier printer , 2002 .

[26]  Paul G. Sorenson,et al.  The Metaview system for many specification environments , 1988, IEEE Software.

[27]  Paul Klint,et al.  Semantics of programming languages: a tool-oriented approach , 1999, SIGP.

[28]  Christopher W. Pidgeon,et al.  DMS®: Program Transformations for Practical Scalable Software Evolution , 2002, IWPSE '02.

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

[30]  Bernhard Schätz,et al.  mbeddr: an extensible C-based programming language and IDE for embedded systems , 2012, SPLASH '12.

[31]  Y. Yamamoto,et al.  Application of the Entity-Relationship Approach to Information Processing Systems Modelling , 1979, International Conference on Conceptual Modeling.

[32]  Emma Söderberg,et al.  Building semantic editors using JastAdd: tool demonstration , 2011, LDTA.

[33]  Jim Steel,et al.  Robust Real-Time Synchronization between Textual and Graphical Editors , 2013, ICMT.

[34]  Sebastian Erdweg,et al.  Modular and automated type-soundness verification for language extensions , 2013, ICFP.

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

[36]  Paul Klint,et al.  Meta-language Support for Type-Safe Access to External Resources , 2012, SLE.

[37]  Juha-Pekka Tolvanen,et al.  Domain-Specific Modeling: Enabling Full Code Generation , 2008 .

[38]  Eelco Visser,et al.  Syntax definition for language prototyping , 1997 .

[39]  Thomas W. Reps,et al.  The synthesizer generator , 1984, SDE 1.

[40]  Marjan Mernik,et al.  A preliminary study on various implementation approaches of domain-specific language , 2008, Inf. Softw. Technol..

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

[42]  Russell W. Quong,et al.  ANTLR: A predicated‐LL(k) parser generator , 1995, Softw. Pract. Exp..

[43]  Eelco Visser,et al.  Using Filters for the Disambiguation of Context-free Grammars , 1994 .

[44]  Charles Simonyi,et al.  Intentional software , 2006, OOPSLA '06.

[45]  Juan de Lara,et al.  AToM3: A Tool for Multi-formalism and Meta-modelling , 2002, FASE.

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

[47]  Gabor Karsai,et al.  The Generic Modeling Environment , 2001 .

[48]  Mikkel Thorup,et al.  Controlled grammatic ambiguity , 1994, TOPL.

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

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

[51]  Ralf Lämmel,et al.  Towards an engineering discipline for GRAMMARWARE Draft as of August 17 , 2003 , 2003 .

[52]  Kalle Lyytinen,et al.  MetaEdit - A Flexible Graphical Environment for Methodology Modelling , 1991, CAiSE.

[53]  Juha Kärnä,et al.  Evaluating the Use of Domain-Specific Modeling in Practice , 2009 .