An Introduction to Grammar Convergence

Grammar convergence is a lightweight verification method for establishing and maintaining the correspondence between grammar knowledge ingrained in all kinds of software artifacts, e.g., object models, XML schemas, parser descriptions, or language documents. The central idea is to extract grammars from diverse software artifacts, and to transform the grammars until they become syntactically identical. The present paper introduces and illustrates the basics of grammar convergence.

[1]  Mel Ó Cinnéide,et al.  Search-based refactoring: an empirical study , 2008 .

[2]  Ralph E. Johnson,et al.  Automated Detection of Refactorings in Evolving Components , 2006, ECOOP.

[3]  Peter Pepper,et al.  Lr Parsing = Grammar Transformation + Ll Parsing Making Lr Parsing More Understandable and More Eecient , 1999 .

[4]  Ralf Lämmel,et al.  Semi‐automatic grammar recovery , 2001, Softw. Pract. Exp..

[5]  Günter Riedewald,et al.  Semantics-preserving migration of semantic rules after left recursion removal in attribute grammars , 2022 .

[6]  Jeremy Gibbons Datatype-Generic Programming , 2006, SSDGP.

[7]  Eelco Visser,et al.  Grammar Engineering Support for Precedence Rule Recovery and Compatibility Checking , 2007, LDTA@ETAPS.

[8]  Brian A. Malloy,et al.  An Automated Approach to Grammar Recovery for a Dialect of the C++ Language , 2007, 14th Working Conference on Reverse Engineering (WCRE 2007).

[9]  Ralf Lämmel,et al.  Revealing the X/O Impedance Mismatch - (Changing Lead into Gold) , 2006, SSDGP.

[10]  Jean Bézivin,et al.  TCS:: a DSL for the specification of textual concrete syntaxes in model engineering , 2006, GPCE '06.

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

[12]  Terence Parr The Reuse of Grammars with Embedded Semantic Actions , 2008, 2008 16th IEEE International Conference on Program Comprehension.

[13]  Günter Riedewald,et al.  Semantics-preserving Migration of Semantic Rules During Left Recursion Removal in Attribute Grammars , 2004, Electron. Notes Theor. Comput. Sci..

[14]  José Nuno Oliveira,et al.  FME 2001: Formal Methods for Increasing Software Productivity , 2001, Lecture Notes in Computer Science.

[15]  Carroll Morgan,et al.  Programming from specifications , 1990, Prentice Hall International Series in computer science.

[16]  Dave Thomas ECOOP 2006 - Object-Oriented Programming, 20th European Conference, Nantes, France, July 3-7, 2006, Proceedings , 2006, ECOOP.

[17]  Brian A. Malloy,et al.  An infrastructure to support interoperability in reverse engineering , 2007, Inf. Softw. Technol..

[18]  David S. Wile,et al.  Abstract Syntax from Concrete Syntax , 1997, Proceedings of the (19th) International Conference on Software Engineering.

[19]  Katalin Tarnay,et al.  Testing of Communicating Systems , 1999, IFIP — The International Federation for Information Processing.

[20]  William M. Waite,et al.  Maptool - Supporting Modular Syntax Development , 1996, CC.

[21]  Eleni Stroulia,et al.  Refactoring Detection based on UMLDiff Change-Facts Queries , 2006, 2006 13th Working Conference on Reverse Engineering.

[22]  Robert C. Moore Removing Left Recursion from Context-Free Grammars , 2000, ANLP.

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

[24]  C. A. R. Hoare,et al.  Proof of correctness of data representations , 1972, Acta Informatica.

[25]  Seth D. Bergmann,et al.  Compilers , 1973, CSC '73.

[26]  Ralf Lämmel,et al.  Grammar Testing , 2001, FASE.

[27]  Perdita Stevens,et al.  Modelling Recursive Calls with UML State Diagrams , 2003, FASE.

[28]  Kevin A. Schneider,et al.  Grammar programming in TXL , 2002, Proceedings. Second IEEE International Workshop on Source Code Analysis and Manipulation.

[29]  Ralf Lämmel The Amsterdam Toolkit for Language Archaeology , 2005, Electron. Notes Theor. Comput. Sci..

[30]  Dean Jin,et al.  Where's the schema? A taxonomy of patterns for software exchange , 2002, Proceedings 10th International Workshop on Program Comprehension.

[31]  Kevin A. Schneider,et al.  Agile Parsing in TXL , 2004, Automated Software Engineering.

[32]  Chris Verhoef,et al.  Development, assessment, and reengineering of language descriptions , 2000, Proceedings of the Fourth European Conference on Software Maintenance and Reengineering.

[33]  Kevin Lano,et al.  Slicing of UML models using model transformations , 2010, MODELS'10.

[34]  Erhard Rahm,et al.  A survey of approaches to automatic schema matching , 2001, The VLDB Journal.

[35]  Ralf Lämmel,et al.  Grammar Adaptation , 2001, FME.

[36]  Brian A. Malloy,et al.  Applying software engineering techniques to parser design: the development of a C # parser , 2002 .

[37]  Ralf Lämmel,et al.  Controllable Combinatorial Coverage in Grammar-Based Testing , 2006, TestCom.

[38]  Perdita Stevens,et al.  Bidirectional model transformations in QVT: semantic issues and open questions , 2007, MODELS'07.

[39]  Ralf Lämmel,et al.  Transformation of SDF syntax definitions in the ASF+SDF Meta-Environment , 2001, LDTA@ETAPS.

[40]  Emin Gün Sirer,et al.  Using production grammars in software testing , 1999, DSL '99.

[41]  Merijn de Jonge,et al.  Cost-effective maintenance tools for proprietary languages , 2001, Proceedings IEEE International Conference on Software Maintenance. ICSM 2001.

[42]  Clémentine Nebut,et al.  Metamodel Matching for Automatic Model Transformation Generation , 2008, MoDELS.