Abstract
This work is part of a research project on automatic generation of optimazing compilers from denotational language definitions. The novel aspect of our approach is that we are based on a two-level meta-language allowing us to distinguish between compile-time and run-time, and thereby to formalize e.g. the distinction between "static expression procedures" and "expression procedures" of Tennent (1981). In this paper we discuss some of the problems encountered when writing denotational definitions using a two-level meta-language. We consider the meta-language TMLS introduced in Nielson (1986a) as well as its restricted version TMLSC developed in Nielson and Nielson (1986) for automatic code generation. Based on an example we argue that rewriting a language definition using TMLS in TMLSC really means introducing some notion of activation record. This observation may pave the way for a formalization of the transformations on semantic definitions considered by Milne and Strachey (1976) as being imposed by different meta-languages.
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
Aho, A.V. and Ullman, J.D., Principles of Compiler Design, Addison-Wesley (1977).
Appel, A.W., Semantics-directed code generation, 12. POPL, 315–324 (1985).
Backus, J.W., Can programming be liberated from the von Neumann style? A functional style and its algebra of programs, CACM 21:8, 613–641 (1978).
Ganzinger, H., Giegerich, R., Möncke, U. and Wilhelm, R., A truly generative semantics-directed compiler generator, SIGPLAN 82 Symposium on Compiler Construction, 172–184 (1982).
Jones, N.D. and Christiansen, H., Control flow treatment in a simple semantics-directed compiler generator, In: Formal description of programming concepts II, (ed. D. Bjørner) North-Holland (1982).
Gordon, M.J.C., The denotational description of programming languages, an introduction, Springer Verlag (1979).
Kastens, U., The GAG-system — a tool for compiler construction, In: Methods and tools for compiler construction, (ed: B. Lorho) Cambridge University Press, 165–182 (1984).
Milne, R. and Strachey, C., A theory of programming language semantics, Halsted Press (1976).
Mosses, P.D., Abstract semantic algebras! In: Formal description of programming concepts II, (ed. D. Bjørner) North-Holland (1982).
Nielson, F., Anstract interpretation using domain theory, Ph.D. thesis, Edinburgh University (1984).
Nielson, F., Abstract interpretation of denotational definitions, to appear in STACS Proceedings, LNCS, Springer Verlag (1986a).
Nielson, F., Correctness of code generation from a two-level meta-language, in these proceedings (1986b).
Nielson, F. and Nielson, H.R., Code generation from two-level denotational meta-languages, to appear in proceedings from workshop on Programs as Data Objects (ed. H. Ganzinger, N.D. Jones), LNCS, Springer Verlag (1986).
Paulson, L., Compiler generation from denotational semantics, In: Methods and tools for compiler construction, (ed. B. Lorho) Cambridge University Press, 219–250 (1984).
Rault, J.-C. and Sethi, R., Properties of a notation for combining functions, JACM 30:3, 595–611 (1983).
Räihä, K.-J., Attribute grammar design using the compiler writing system HLP, In: Methods and tools for compiler construction, (ed. B. Lorho) Cambridge University Press, 183–206 (1984).
Sethi, R., Control flow aspects of semantics directed compiling, ACM TOPLAS 5:4, 554–595 (1983).
Smyth, M.B. and Plotkin, G.D., The category-theoretic solution of recursive domain equations, SIAM J. Comput. 11:4, 761–783 (1982).
Stoy J., Denotational semantics, The MIT Press (1977).
Tennent, R.D., Principles of programming languages, Prentice Hall (1981).
Wand, M., Deriving target code as a representation of continuation semantics, ACM TOPLAS, 4:3, 496–517 (1982).
Author information
Authors and Affiliations
Editor information
Rights and permissions
Copyright information
© 1986 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Nielson, H.R., Nielson, F. (1986). Pragmatic aspects of two-level denotational meta-languages. In: Robinet, B., Wilhelm, R. (eds) ESOP 86. ESOP 1986. Lecture Notes in Computer Science, vol 213. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-16442-1_10
Download citation
DOI: https://doi.org/10.1007/3-540-16442-1_10
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-16442-5
Online ISBN: 978-3-540-39782-3
eBook Packages: Springer Book Archive