Skip to main content

Code generation from two-level denotational meta-languages

  • Conference paper
  • First Online:

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.

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