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.
Preview
Unable to display preview. Download preview PDF.
References
H. B. Enderton. A Mathematical Introduction to Logic. Academic Press, 1972.
R. Farrow. LINGUIST-86: Yet another translator writing system based on attribute grammars. In Proc. of the SIGPLAN '82 Symposium on Compiler Construction, 1982.
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.
R. Farrow and D. Yellin. A comparison of storage optimizations in automatically-generated attribute evaluators. Acta Informatica 23, pages 85–98, 1991.
H. Ganzinger and R. Giegerich. Attribute coupled grammars. In Proc. of the SIGPLAN '84 Symposium on Compiler Construction, pages 85–98, 1984.
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.
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.
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.
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.
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.
T. Katayama. Translation of attribute grammars into procedures. ACM Transactions on Programming Languages and Systems, 6, 1984.
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.
U. Kastens, B. Hutt, and E. Zimmermann. Gag: A practical compiler generator. Lecture Notes in Computer Science 141, 1982.
U. Kastens and W. M. Waite. An abstract data type for name analysis. Acta Informatica 28, 1991.
U. Kastens and W. M. Waite. Modularity and reusability in attribute grammars. Technical Report CU-CS-613-92, University of Colorado at Boulder, 1992.
Z. Manna. Mathematical Theory of Computation. McGraw-Hill, 1974.
P. Mosses. Action Semantics. Cambridge University Press, 1992. “Tracts in Theoretical Computer Science”.
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).
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.
A. Poetzsch-Heffter. Implementing high-level identification specfications. In P. Pfahler U. Kastens, editor, Compiler Construction, 1992. LNCS 641.
M. Rosendahl. Strictness analysis for attribute grammars. In M. Bruynoogh and M. Wirsing, editors, Programming Language Implementation and Logic Programming, 1992. LNCS 631.
T. Reps and T. Teitelbaum. The Syntheziser Generator Reference Manual. Springer-Verlag, 1989. (3rd edition).
G. Snelting. The calculus of context relations. Acta Informatica 28, pages 411–445, 1991.
H. Vogt, S. Swierstra, and M. Kuiper. Higher order attribute grammars. In ACM Conference on Progamming Language Design and Implementation, 1989.
Author information
Authors and Affiliations
Editor information
Rights 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