Automating Language Evolution

The design and implementation of complex software systems inherently spans multiple levels of abstractions. The concepts of each level of abstractions and their interplay are represented by formal languages that are either implicitly known or explicitly defined. Achieving high productivity in software development and maintenance is thus strongly connected with ruling the complexity of multi-level language design and evolution. This paper explains the necessity for automating multi-level language evolution, discusses its challenges and proposes concepts as well as a prototypical tool that support the incremental co-evolution of a staged language and program generation architecture. This approach reduces the cost of language maintenance and paves the ground for an incremental and bottom-up oriented way of developing domain specific languages.

[1]  Jukka Paakki,et al.  Attribute grammar paradigms—a high-level methodology in language implementation , 1995, CSUR.

[2]  Jacob Stein,et al.  Class modification in the GemStone object-oriented DBMS , 1987, OOPSLA 1987.

[3]  Rupert Stützle Wiederverwendung ohne Mythos , 2002 .

[4]  Wolfgang Lohmann Format Evolution , 2001 .

[5]  Ralf Lämmel,et al.  Transformation of SDF syntax definitions in the ASF+SDF Meta-Environment , 2001, Electron. Notes Theor. Comput. Sci..

[6]  Jacob Stein,et al.  Class modification in the GemStone object-oriented DBMS , 1987, OOPSLA '87.

[7]  Welf Löwe,et al.  Towards the Unified Recovery Architecture for Reverse Engineering , 2003, Software Engineering Research and Practice.

[8]  Gregory J. Chaitin,et al.  Register allocation and spilling via graph coloring , 2004, SIGP.

[9]  Ralf Lämmel Grammar Adaptation , 2001, FME.

[10]  Gregory J. Chaitin,et al.  Register allocation & spilling via graph coloring , 1982, SIGPLAN '82.

[11]  Xml Db Initiative XUpdate-XML Update Language , 2003 .

[12]  David Garlan,et al.  TransformGen: automating the maintenance of structure-oriented environments , 1994, TOPL.

[13]  Elke A. Rundensteiner,et al.  XEM: managing the evolution of XML documents , 2001, Proceedings Eleventh International Workshop on Research Issues in Data Engineering. Document Management for Data Intensive Business and Scientific Applications. RIDE 2001.

[14]  Y. Shoham What is the frame problem , 1987 .

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

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

[17]  Kent L. Beck,et al.  Extreme programming explained - embrace change , 1990 .

[18]  Yu Guo,et al.  First Joint IEEE/IFIP Symposium on Theoretical Aspects of Software Engineering, TASE 2007, June 5-8, 2007, Shanghai, China , 2007, TASE.

[19]  Isaiah Pinchas Kantorovitz Lexical analysis tool , 2004, SIGP.

[20]  Linda Bridge,et al.  Generation gap? , 2006, Alberta RN.

[21]  David Garlan,et al.  A structural approach to the maintenance of structure-oriented environments , 1987, SDE 2.

[22]  Ralf Lämmel,et al.  The Grammar Deployment Kit - System Demonstration , 2002, Electron. Notes Theor. Comput. Sci..

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

[24]  Fahimeh Jalili,et al.  A general linear-time evaluator for attribute grammars , 1983, SIGP.

[25]  Carolyn B. Seaman,et al.  Practical Software Maintenance , 2000, J. Softw. Maintenance Res. Pract..

[26]  Arie van Deursen,et al.  REPORT RAPPORT , 1997 .

[27]  Görel Hedin,et al.  An Object-Oriented Notation for Attribute Grammars , 1989, European Conference on Object-Oriented Programming.

[28]  Görel Hedin,et al.  Reference Attributed Grammars , 2000, Informatica.

[29]  Dewayne E. Perry,et al.  Metrics and laws of software evolution-the nineties view , 1997, Proceedings Fourth International Software Metrics Symposium.

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

[31]  Carolyn Seaman,et al.  Practical Software Maintenance , 2000, J. Softw. Maintenance Res. Pract..

[32]  Torbjörn Ekman,et al.  Rewritable Reference Attributed Grammars , 2004, ECOOP.

[33]  Guido van Rossum,et al.  Python Programming Language , 2007, USENIX Annual Technical Conference.

[34]  Jay Banerjee,et al.  Semantics and implementation of schema evolution in object-oriented databases , 1987, SIGMOD '87.

[35]  Eelco Visser,et al.  A Survey of Strategies in Program Transformation Systems , 2001, WRS.