Grammar Adaptation

  • Ralf Lämmel
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2021)


We employ transformations for the adaptation of grammars. Grammars need to be adapted in grammar development, grammar maintenance, grammar reengineering, and grammar recovery. Starting from a few fundamental transformation primitives and combinators, we derive an operator suite for grammar adaptation. Three groups of operators are identified, namely operators for refactoring, construction and destruction. While refactoring is semantics-preserving in the narrow sense, transformations for construction and destruction require the consideration of relaxed notions of semantics preservation based on other grammar relations than equality of generated languages. The consideration of semantics and accompanying preservation properties is slightly complicated by the fact that we cannot insist on reduced grammars.


Narrow Sense Symbolic Form Operator Suite Sentential Form Preservation Property 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    J. Aycock and N. Horspool. Faster Generalized LR Parsing. In S. Jähnichen, editor, Proc. of the 8th International Conference on Compiler Construction (CC’99), volume 1575 of LNCS, pages 32–46. Springer-Verlag, 1999.Google Scholar
  2. 2.
    D. Blasband. Automatic Analysis of Ancient Languages. PhD thesis, Free University of Brussels, 2000.Google Scholar
  3. 3.
    M. Brand, M. Sellink, and C. Verhoef. Generation of components for software renovation factories from context-free grammars. Science of Computer Programming, 36(2-3):209–266, 2000.CrossRefGoogle Scholar
  4. 4.
    R. D. Cameron. Extending context-free grammars with permutation phrases. ACM Letters on Programming Languages and Systems, 2(4):85–94, Mar. 1993.CrossRefGoogle Scholar
  5. 5.
    E. Chikofsky and J. Cross. Reverse engineering and design recovery: A taxonomy. IEEE Software, 7(1):13–17, 1990.CrossRefGoogle Scholar
  6. 6.
    M. de Jonge and J. Visser. Grammars as Contracts. In Proc. of GCSE 2000, LNCS, Erfurt, Germany, 2001. Springer-Verlag. to appear.Google Scholar
  7. 7.
    IBM Corporation.VS COBOL II Application Programming Language Reference, 1993. Release 4, Document number GC26-4047-07.Google Scholar
  8. 8.
    R. Lämmel and C. Verhoef. VS COBOL II Grammar Version 1.0.3., 1999-2001.
  9. 9.
    R. Lämmel and C. Verhoef. Semi-automatic Grammar Recovery. Submitted, available at, July 2000.
  10. 10.
    W. F. Opdyke. Refactoring Object-Oriented Frameworks. PhD thesis, University of Illinois at Urbana-Champaign, 1992.Google Scholar
  11. 11.
    H. A. Partsch. Specification and Transformation of Programs. Springer-Verlag, 1990.Google Scholar
  12. 12.
    A. Pettorossi and M. Proietti. Rules and Strategies for Transforming Functional and Logic Programs. ACM Computing Surveys, 28(2):360–414, June 1996.CrossRefGoogle Scholar
  13. 13.
    J. J. Sarbo. Grammar transformations for optimizing backtrack parsers. Computer Languages, 20(2):89–100, May 1994.CrossRefGoogle Scholar
  14. 14.
    M. Sellink and C. Verhoef. Development, assessment, and reengineering of language descriptions. In J. Ebert and C. Verhoef, editors, Proceedings of the Fourth European Conference on Software Maintenance and Reengineering, pages 151–160. IEEE Computer Society, March 2000.Google Scholar
  15. 15.
    D. S. Wile. Abstract syntax from concrete syntax. In Proc. of the 1997 International Conference on Software Engineering, pages 472–480. ACM Press, 1997.Google Scholar
  16. 16.
    D. S. Wile. Integrating Syntaxes and their Associated Semantics. Draft, 1999.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Ralf Lämmel
    • 1
  1. 1.CWI Kruislaan 413 NL-1098 SJ AmsterdamVrije UniversiteitAmsterdam

Personalised recommendations