Skip to main content

Abstract interpretation of denotational definitions

A survey

  • Contributed Papers
  • Conference paper
  • First Online:
STACS 86 (STACS 1986)

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

Included in the following conference series:

Abstract

Abstract interpretation is a framework for describing data flow analyses and for proving their correctness. Traditionally the framework is developed for flow chart languages, but this paper extends the applicability of the idea to a wide class of languages that have a denotational semantics. The main idea is to study a denotational metalanguage with two kinds of types: one kind describes compile-time entities and another describes run-time entities. The run-time entities will be interpreted differently so as to obtain different semantics from the same denotational definition: the standard semantics is the ordinary semantics, an approximating semantics describes a data flow analysis and the collecting semantics is a convenient tool in relating the previous two semantics.

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.V. Aho, J.D. Ullman: Principles of Compiler Design, Addison-Wesley, 1978.

    Google Scholar 

  2. M.A. Arbib, E.G. Manes: Arrows, Structures and Functors: The Categorical Imperative, Academic Press, 1975.

    Google Scholar 

  3. G.L. Burn, C.L. Hankin, S. Abramsky: The Theory and Practice of Strictness Analysis for Higher Order Functions, Research Report DoC 85/6, Imperial College of Science and Technology, London.

    Google Scholar 

  4. P. Cousot, R. Cousot: Abstract Interpretation: A Unified lattice model for static analysis of programs by construction or approximation of fixpoints, in: Conf. Record of the 4th ACM Symposium on Principles of Programming Languages, 1977.

    Google Scholar 

  5. P. Cousot, R. Cousot: Static determination of dynamic properties of recursive procedures, in: Formal Descriptions of Programming Concepts, E.J. Neuhold (ed.), North-Holland Publishing Company, 1978.

    Google Scholar 

  6. P. Cousot, R. Cousot: Systematic design of program analysis frameworks, in: Conf. Record of the 6th ACM Symposium on Principles of Programming Languages, 1979.

    Google Scholar 

  7. V. Donzeau-Gouge: Utilisation de la sémantique dénotationelle pour l'étude d'interprétations non-standard, IRIA report No. 273, France, 1978.

    Google Scholar 

  8. V. Donzeau-Gouge: Denotational definition of properties of program computations, in: Program Flow Analysis: Theory and Applications, S.S. Muchnick, N.D. Jones (eds.), Prentice-Hall, 1981.

    Google Scholar 

  9. M. Gordon: The Denotational Description of Programming Languages — An Introduction, Springer-Verlag, 1979.

    Google Scholar 

  10. M.S. Hecht: Flow Analysis of Computer Programs, North-Holland, 1977.

    Google Scholar 

  11. N.D. Jones, S.S. Muchnick: TEMPO: A Unified Treatment of Binding Time and Parameter Passing Concepts in Programming Languages, Lecture Notes in Computer Science No. 66, Springer Verlag, 1978.

    Google Scholar 

  12. N.D. Jones, S.S. Muchnick: Complexity of flow analysis, inductive assertion synthesis and a language due to Dijkstra, in: Program Flow Analysis: Theory and Applications, S.S. Muchnick, N.D. Jones (eds.), Prentice-Hall, 1981.

    Google Scholar 

  13. J.B. Kam, J.D. Ullman: Monotone data flow analysis frameworks, Acta Informatica, vol. 7 (1977), pp. 305–317.

    Article  Google Scholar 

  14. R. Milne, C. Strachey: A Theory of Programming Language Semantics, Chapman and Hall, London, 1976.

    Google Scholar 

  15. A. Mycroft, F. Nielson: Strong abstract interpretation using power domains, in: Proceedings ICALP 1983, Springer LNCS no. 154, pp. 536–547.

    Google Scholar 

  16. F. Nielson: A denotational framework for data flow analysis, Acta Informatica, vol. 18 (1982), pp. 265–287.

    Article  Google Scholar 

  17. F. Nielson: Abstract Interpretation Using Domain Theory, Ph.D. thesis, University of Edinburgh, Scotland, 1984.

    Google Scholar 

  18. F. Nielson: Tensor Products Generalize the Relational Data Flow Analysis Method, 4'th HCSC, 1985.

    Google Scholar 

  19. F. Nielson: Expected Forms of Data Flow Analysis, to appear in: Proceedings of "Programs as Data Objects", Springer LNCS, 1986.

    Google Scholar 

  20. F. Nielson, H.R. Nielson: Code Generation from Two-Level Denotational Meta-Languages, to appear in: Proceedings of "Programs as Data Objects", Springer LNCS, 1986.

    Google Scholar 

  21. H.R. Nielson, F. Nielson: Pragmatic Aspects of Two-Level Denotational Meta-Languages, report R-85-13, Aalborg University Centre, Denmark.

    Google Scholar 

  22. J.C. Reynolds: On the Relation between Direct and Continuation Semantics, in: Proceedings 2nd ICALP 1974, Lecture Notes in Computer Science 14, pp. 141–156.

    Google Scholar 

  23. B.K. Rosen: High-level data flow analysis, CACM vol. 20 No. 10 (1977), pp. 712–724.

    Google Scholar 

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

    Google Scholar 

  25. A. Tenenbaum: Automatic Type Analysis in a Very High Level Language, Ph.D. thesis, New York University, 1974.

    Google Scholar 

  26. R.D. Tennent: Principles of Programming Languages, Prentice-Hall, 1981.

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

B. Monien G. Vidal-Naquet

Rights and permissions

Reprints and permissions

Copyright information

© 1985 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Nielson, F. (1985). Abstract interpretation of denotational definitions. In: Monien, B., Vidal-Naquet, G. (eds) STACS 86. STACS 1986. Lecture Notes in Computer Science, vol 210. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-16078-7_61

Download citation

  • DOI: https://doi.org/10.1007/3-540-16078-7_61

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-16078-6

  • Online ISBN: 978-3-540-39758-8

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics