Maptool — supporting modular syntax development

  • Basim M. Kadhim
  • William M. Waite
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1060)


In building textual translators, implementors often distinguish between a concrete syntax and an abstract syntax. The concrete syntax describes the phrase structure of the input language and the abstract syntax describes a tree structure that can be used as the basis for performing semantic computations. Having two grammars imposes the requirement that there exist a mapping from the concrete syntax to the abstract syntax. The research presented in this paper led to a tool, called Maptool, that is designed to simplify the development of the two grammars. Maptool supports a modular approach to syntax development that mirrors the modularity found in semantic computations. This is done by allowing users to specify each of the syntaxes only partially as long as the sum of the fragments allows deduction of the complete syntaxes.


Abstract syntax concrete syntax modularity parsing grammar syntax development syntax mapping tree construction 


  1. 1.
    Alfred V. Aho and Stephen C. Johnson. Optimal code generation for expression trees. Journal of the ACM, 23(3):488–501, July 1976.Google Scholar
  2. 2.
    Ali Bahrami. CAGT — an automated approach to abstract and parsing grammars. Master's thesis, Department of Electrical and Computer Engineering, University of Colorado, Boulder, CO, 1986.Google Scholar
  3. 3.
    Robert A. Ballance, Jacob Butcher, and Susan L. Graham. Grammatical abstraction and incremental syntax analysis in a language-based editor. In Proceedings of the SIGPLAN '88 Conference on Programming Language Design and Implementation, pages 185–198. SIGPLAN, ACM, June 1988.Google Scholar
  4. 4.
    Franklin L. DeRemer. Compiler Construction; An Advanced Course, chapter 2.E., pages 121–145. Springer-Verlag, New York, Heidelberg, Berlin, second edition, 1976.Google Scholar
  5. 5.
    Franklin L. DeRemer. Compiler Construction; An Advanced Course, chapter 2.A., pages 37–56. Springer-Verlag, New York, Heidelberg, Berlin, second edition, 1976.Google Scholar
  6. 6.
    Robert W. Gray, Vincent P. Heuring, Steve P. Levi, Anthony M. Sloane, and William M. Waite. Eli: A complete, flexible compiler construction system. Communications of the ACM, 35(2):121–131, February 1992.Google Scholar
  7. 7.
    U. Kastens and W. M. Waite. Modularity and reusability in attribute grammars. Acta Informatica, 31:601–627, 1994.Google Scholar
  8. 8.
    Uwe Kastens. LIGA: A language independent generator for attribute evaluators. Technical Report Reihe Informatik 63, Universität-GH Paderborn, Fachbereich Mathematik-Informatik, 1989.Google Scholar
  9. 9.
    Anton Nijholt. Context-Free Grammars: Covers, Normal Forms, and Parsing, volume 93 of Lecture Notes in Computer Science. Springer-Verlag, Berlin, Heidelberg, New York, 1980.Google Scholar
  10. 10.
    Guido Persch, Georg Winterstein, Manfred Dausmann, and Sophia Drossopoulou. Overloading in preliminary Ada. SIGPLAN Notices, 15(11):47–56, November 1980.Google Scholar
  11. 11.
    D. J. Rosenkrantz and H. B. Hunt. Efficient algorithms for automatic construction and compactification of parsing grammars. Transactions on Programming Languages and Systems, 9(4):543–566, October 1987.Google Scholar
  12. 12.
    William M. Waite and Gerhard Goos. Compiler Construction. Texts and Monographs in Computer Science. Springer-Verlag, New York, Berlin, Heidelberg, Tokyo, 1984.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1996

Authors and Affiliations

  • Basim M. Kadhim
    • 1
  • William M. Waite
    • 1
  1. 1.University of ColoradoBoulderUSA

Personalised recommendations