Skip to main content

Code generation from two-level denotational meta-languages

  • Conference paper
  • First Online:
Programs as Data Objects

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

Abstract

The use of a two-level meta-language in denotational language definitions makes it possible to distinguish between compile-time entities and run-time entities. This is important for language specification and it allows one to formalize Tennents [18] informal distinction between static expressions and expressions. The automatic generation of compilers also benefits from an explicit distinction between run-time and compile-time in the language specification. A theory of abstract interpretation has been developed for the meta-language

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. A.W. Appel: Semantics-directed code generation, 12. POPL, 315–324 (1985).

    Google Scholar 

  2. L. Cardelli: The functional abstract machine, Bell Labs 1984.

    Google Scholar 

  3. H. Ganzinger, R. Giegerich, U. Möncke & R. Wilhelm: A truly generative semantics-directed compiler generator, SIGPLAN 82 Symposium on Compiler Construction, 172–184 (1982).

    Google Scholar 

  4. N.D. Jones & H. Christiansen: Control flow treatment in a simple semantics directed compiler generator, in: Formal Descriptions of Programming Concepts II' IFIP TC-2 Working Conference (ed. D. Bjørner), North Holland, Amsterdam (1982).

    Google Scholar 

  5. U. Kastens: The GAG-system — a tool for Compiler Construction, in: Methods and Tools for Compiler Construction (ed. B. Lorho), Cambridge University Press, 162–182 (1984).

    Google Scholar 

  6. P.J. Landin: The mechanical evaluation of expressions, Comput. J. 6, 308–320, 1964.

    Google Scholar 

  7. P. Mosses: SIS-semantics implementation system: Reference manual and user guide, Aarhus University (1979).

    Google Scholar 

  8. F. Nielson: Abstract interpretation using domain theory, Ph.D. thesis, Edinburgh University (1984).

    Google Scholar 

  9. F. Nielson: Abstract interpretation of denotational definitions. Proceedings from STACS, Springer LNCS (1986).

    Google Scholar 

  10. F. Nielson: Tensor products generalize the relational data flow analysis method, 4th Hungarian Conference on Computer Science, 1985.

    Google Scholar 

  11. F. Nielson: Expected forms of data flow analyses, these proceedings.

    Google Scholar 

  12. F. Nielson: Correctness of code generation from a two-level denotational meta-language, (Extended abstract-Preliminary version), Aalborg University Centre (1985).

    Google Scholar 

  13. H.R. Nielson & F. Nielson: Pragmatic aspects of two-level denotational meta-languages, Aalborg University Centre (1985).

    Google Scholar 

  14. L. Paulson: Compiler generation from denotational semantics, in: Methods and Tools for Compiler Construction (ed: B. Lorho), Cambridge University Press, 219–250 (1984).

    Google Scholar 

  15. K.J. Räihä: 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).

    Google Scholar 

  16. R. Sethi: Control flow aspects of semantics directed compiling, ACM TOPLAS 5:4, 554–595 (1983).

    Google Scholar 

  17. M.B. Smyth & G.D. Plotkin: The category-theoretic solution of recursive domain equations, SIAM J. Comput. 11:4, 761–783 (1982).

    Google Scholar 

  18. R.D. Tennent: Principles of Programming Languages, Prentice Hall (1981).

    Google Scholar 

  19. M. Wand: Deriving target code as a representation continuation semantics, ACM TOPLAS 4:3, 496–517 (1982).

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Harald Ganzinger Neil D. Jones

Rights and permissions

Reprints and permissions

Copyright information

© 1986 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Nielson, F., Nielson, H.R. (1986). Code generation from two-level denotational meta-languages. In: Ganzinger, H., Jones, N.D. (eds) Programs as Data Objects. Lecture Notes in Computer Science, vol 217. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-16446-4_11

Download citation

  • DOI: https://doi.org/10.1007/3-540-16446-4_11

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-16446-3

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

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics