Abstract
The paper reports on extensions to the MAX system enabling the generation and refinement of interpreters based on formal language specifications. In these specifications, static semantics is defined by an attribution mechanism that allows to enrich syntax trees by control flow graphs. The dynamic semantics is defined by evolving algebras, a framework that has been successfully used to specify realistic programming languages.
We apply the combined framework to a non-trivial example language and show how the resulting language specification can be refined in order to improve the efficiency of the generated interpreters. The framework provides enough modularity and flexibility so that such refinements can be carried out by local changes within the framework. Finally, we explain the implementation of the extensions to MAX.
Supported by DFG grant Po 432/2-1.
Chapter PDF
Similar content being viewed by others
Keywords
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.
References
A. V. Aho and J. D. Ullman. Principles of Compiler Design. Addison-Wesley, 1977.
E. Börger and D. Rosenzweig. A simple mathematical model for full Prolog. Technical Report TR-33/92, Dipartimento di Informatica, Universita di Pisa, 1992.
R. L. Constable and M. J. O'Donnell. A Programming Logic: With an Introduction to the PL/CV Verifier. Winthrop Publishers, 1978.
Y. Gurevich and J. Huggins. The semantics of the C programming language. In E. Börger et al., editor, Computer Science Logic, pages 274–308, 1992. LNCS 702.
Y. Gurevich and L. Moss. Algebraic operational semantics and Occam. In E. Börger et al., editor, Computer Science Logic, pages 176–192, 1989. LNCS 440.
Y. Gurevich. Evolving Algebras, volume 43, pages 264–284. EATCS Bulletin, 1991.
R. Merk. Generierung von MAX-Attributauswertern. Master's thesis, Technische Universität München, 1993.
P. Mosses. Action Semantics. Cambridge University Press, 1992. ”Tracts in Theoretical Computer Science”.
R. Milner and C. Stratchey. A Theory of Programming Language Semantics. Chapman and Hall, 1976.
A. Poetzsch-Heffter. Interprocedural data flow analysis based on temporal specifications. Technical Report 93-1397, Cornell University, 1993.
A. Poetzsch-Heffter. Programming language specification and prototyping using the MAX system. In J. Penjam M. Bruynooghe, editor, Programming Language Implementation and Logic Programming, 1993. LNCS 714.
A. Poetzsch-Heffter and T. Eisenbarth. The MAX system: A tutorial introduction. Technical Report TUM-I9307, TU, April 1993.
D. A. Schmidt. Detecting global variables in denotational specifications. Transactions on Programming Languages and Systems, 7:299–310, 1985.
M. Tofte. Compiler Generators. Springer-Verlag, 1990.
G. A. Venkatesh. A framework for construction and evaluation of high-level specification of program analysis techniques. ACM Conference on Progamming Language Design and Implementation, 1989.
R. Wilhelm. Global flow analysis and optimization in the MUG2 compiler generating system. In S. Muchnick and N. D. Jones, editors, Program Flow Analysis: Theory and Applications, pages 132–159. Prentice-Hall, 1981.
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1994 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Poetzsch-Heffter, A. (1994). Developing efficient interpreters based on formal language specifications. In: Fritzson, P.A. (eds) Compiler Construction. CC 1994. Lecture Notes in Computer Science, vol 786. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-57877-3_16
Download citation
DOI: https://doi.org/10.1007/3-540-57877-3_16
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-57877-2
Online ISBN: 978-3-540-48371-7
eBook Packages: Springer Book Archive