Skip to main content

Programming language specification and prototyping using the MAX system

  • Conference paper
  • First Online:
Progamming Language Implementation and Logic Programming (PLILP 1993)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 714))

Abstract

The paper describes the MAX system, a tool for specification and prototyping of language processors. The MAX system is based on a first-order framework generalizing attribute grammar like frameworks. It allows to refer to syntax tree nodes and “distant” attribute occurrences. Attributes may have tree nodes as values, so that global relations between distant tree nodes can be expressed. This enables more compact and readable specifications for a wide class of complex problems. Within the presented framework, context conditions can be globally formulated by first-order predicate formulae.

The paper explains the fundamental semantical concepts of the system, shows its application to a small name analysis problem, and describes the main implementation issues. In particular, we present a powerful attribute evaluation algorithm that can handle attribute dependencies arising during evaluation time. Finally, we report on the experiences made by the system and compare it to other specification frameworks for language-based programming tool generation.

Partially supported by DFG grant Po 432/2-1.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. H. B. Enderton. A Mathematical Introduction to Logic. Academic Press, 1972.

    Google Scholar 

  2. R. Farrow. LINGUIST-86: Yet another translator writing system based on attribute grammars. In Proc. of the SIGPLAN '82 Symposium on Compiler Construction, 1982.

    Google Scholar 

  3. R. Farrow. Automatic generation of fixed-point-finding evaluatorsfor circular, but well-defined, attribute grammars. In Proc. of the SIGPLAN '86 Symposium on Compiler Construction, 1986.

    Google Scholar 

  4. R. Farrow and D. Yellin. A comparison of storage optimizations in automatically-generated attribute evaluators. Acta Informatica 23, pages 85–98, 1991.

    Google Scholar 

  5. H. Ganzinger and R. Giegerich. Attribute coupled grammars. In Proc. of the SIGPLAN '84 Symposium on Compiler Construction, pages 85–98, 1984.

    Google Scholar 

  6. H. Ganzinger, R. Giegerich, U. Möncke, and R. Wilhelm. A truly generative semantics-directed compiler generator. In Proc. of the SIGPLAN '82 Symposium on Compiler Construction, 1982.

    Google Scholar 

  7. G. Goos, W. A. Wulf, A. Evans, Jr., and K. J. Butler, editors. DIANA An Intermediate Language for Ada, volume 161 of LNCS. Springer-Verlag, 1987.

    Google Scholar 

  8. G. Hedin. Incremental static semantics analysis for object-oriented languages using door attribute grammars. In H. Alblas and B. Melichar, editors, International Sommer School on Attribute Grammars, Applcations, and Systems, pages 374–379, 1991. LNCS 545.

    Google Scholar 

  9. M. Jourdan. An optimal-time recursive evaluator for attribute grammars. In M. Paul and B. Robinet, editors, International Symposium on Programming, pages 167–178, 1984. LNCS 167.

    Google Scholar 

  10. M. Jourdan. Strongly non-circular attribute grammars and their recursive evaluation. In Proc. of the SIGPLAN '84 Symposium on Compiler Construction, pages 81–93, 1984.

    Google Scholar 

  11. T. Katayama. Translation of attribute grammars into procedures. ACM Transactions on Programming Languages and Systems, 6, 1984.

    Google Scholar 

  12. K. Koskimies, T Elomaa, T. Lehtonen, and J. Paakki. Tools/HLP84 report and user manual. Technical Report A-1988-2, Department of Computer Science, University of Helsinki. 1988.

    Google Scholar 

  13. U. Kastens, B. Hutt, and E. Zimmermann. Gag: A practical compiler generator. Lecture Notes in Computer Science 141, 1982.

    Google Scholar 

  14. U. Kastens and W. M. Waite. An abstract data type for name analysis. Acta Informatica 28, 1991.

    Google Scholar 

  15. U. Kastens and W. M. Waite. Modularity and reusability in attribute grammars. Technical Report CU-CS-613-92, University of Colorado at Boulder, 1992.

    Google Scholar 

  16. Z. Manna. Mathematical Theory of Computation. McGraw-Hill, 1974.

    Google Scholar 

  17. P. Mosses. Action Semantics. Cambridge University Press, 1992. “Tracts in Theoretical Computer Science”.

    Google Scholar 

  18. A. Poetzsch-Heffter. Context-Dependent Syntax of Programming Languages: A New Specification Method and its Application. PhD thesis, Technische Universität München, 1991. (in german).

    Google Scholar 

  19. A. Poetzsch-Heffter. Logic-based specification of visibility rules. In J. Maluszynski and M. Wirsing, editors, Programming Language Implementation and Logic Programming, 1991. LNCS 528.

    Google Scholar 

  20. A. Poetzsch-Heffter. Implementing high-level identification specfications. In P. Pfahler U. Kastens, editor, Compiler Construction, 1992. LNCS 641.

    Google Scholar 

  21. M. Rosendahl. Strictness analysis for attribute grammars. In M. Bruynoogh and M. Wirsing, editors, Programming Language Implementation and Logic Programming, 1992. LNCS 631.

    Google Scholar 

  22. T. Reps and T. Teitelbaum. The Syntheziser Generator Reference Manual. Springer-Verlag, 1989. (3rd edition).

    Google Scholar 

  23. G. Snelting. The calculus of context relations. Acta Informatica 28, pages 411–445, 1991.

    Google Scholar 

  24. H. Vogt, S. Swierstra, and M. Kuiper. Higher order attribute grammars. In ACM Conference on Progamming Language Design and Implementation, 1989.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Maurice Bruynooghe Jaan Penjam

Rights and permissions

Reprints and permissions

Copyright information

© 1993 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Poetzsch-Heffter, A. (1993). Programming language specification and prototyping using the MAX system. In: Bruynooghe, M., Penjam, J. (eds) Progamming Language Implementation and Logic Programming. PLILP 1993. Lecture Notes in Computer Science, vol 714. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57186-8_76

Download citation

  • DOI: https://doi.org/10.1007/3-540-57186-8_76

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-57186-5

  • Online ISBN: 978-3-540-47945-1

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics