Advertisement

A relational framework for abstract interpretation

  • Alan Mycroft
  • Neil D. Jones
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 217)

Abstract

Abstract interpretation is a very general framework for proving certain properties of programs. This is done by interpreting the symbols of the program, or the symbols of a denotational metalanguage translation, in two different ways (the standard interpretation and the abstract interpretation) and relating them. We set up a new framework for abstract interpretation based on relations (with the intent of inclusive or logical relations). This avoids problems with power domains and enables certain higher-order frameworks to be proved correct. As an example we show how the Hindley/Milner type system can be viewed as a special case of our system and is thus automatically correct.

Keywords

Logical Relation Type Scheme Abstract Interpretation Power Object Abstraction Function 
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.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. [1]
    Abramsky, S. Strictness analysis based on logical relations. Unpublished manuscript, 1985.Google Scholar
  2. [2]
    Burn, G., Hankin, C. and Abramsky, S. The theory and practice of strictness analysis for higher order functions. Imperial college report DoC 85/6, 1985. To appear in Science of Computer Programming.Google Scholar
  3. [3]
    Cousot, P. and Cousot, R. Abstract interpretation: a unified lattice model for static analysis of programs by construction and approximation of fixpoints. Proc. ACM symp. on Principles of Programming Languages, 1977.Google Scholar
  4. [4]
    Damas, L. and Milner, R. Principal type schemes for functional programs. Proc. ACM symp. on Principles of Programming Languages, 1980.Google Scholar
  5. [5]
    Donzeau-Gouge, V. Utilisation de la sémantique dénotationelle pour l'étude d'interprétations non-standard. INRIA rapport 273, 1978.Google Scholar
  6. [6]
    Dybjer, P. Domain Algebras. Lecture Notes in Computer Science: Proc. 11th ICALP, vol. 172, Springer-Verlag, 1984.Google Scholar
  7. [7]
    Jones, N.D. and Mycroft, A. Dataflow of applicative programs using minimal function graphs. Proc. ACM symp. on Principles of Programming Languages, 1986.Google Scholar
  8. [8]
    Gordon, M. Models of pure LISP. Ph.D. thesis, Dept. of Artificial Intelligence, Edinburgh University, 1973.Google Scholar
  9. [9]
    Hindley, J.R. The principal type scheme of an object in combinatory logic. Transactions of the Amer. Math. Soc., vol 146, pp 29–60, 1969.Google Scholar
  10. [10]
    Milner, R. A theory of type polymorphism in programming. JCSS 1978.Google Scholar
  11. [11]
    Mulmuley, K. A mechanisible theory for existence proofs of inclusive predicates. CMU computer science report CMU-CS-85-149, 1985.Google Scholar
  12. [12]
    Mycroft, A. The theory and practice of transforming call-by-need into call-by-value. Lecture Notes in Computer Science: Proc. 4th intl. symp. on programming, vol. 83, Springer-Verlag, 1980.Google Scholar
  13. [13]
    Mycroft, A. Abstract Interpretation and Optimising Transformations of Applicative Programs. Ph.D. thesis, Edinburgh University, 1981. Available as computer science report CST-15-81.Google Scholar
  14. [14]
    Mycroft, A. and Nielson, F. Strong abstract interpretation using power domains. Lecture Notes in Computer Science: Proc. 10th ICALP, vol. 154, Springer-Verlag, 1983.Google Scholar
  15. [15]
    Nielson, F. Abstract interpretation using domain theory. Ph.D. thesis, Edinburgh University, 1984. Available as computer science report CST-31-84.Google Scholar
  16. [16]
    Plotkin, G. Lambda definability in the full type hierarchy. In [18].Google Scholar
  17. [17]
    Reynolds, J.C. Types, abstraction and parametric polymorphism. IFIP 83, (ed) R.E.A. Mason, North-Holland, 1983.Google Scholar
  18. [18]
    Seldin, J.P., and Hindley, J.R. To H.B. Curry: Essays on combinatory logic, lambda calculus and formalism. Academic Press, 1980.Google Scholar
  19. [19]
    Stoy, J. Denotational semantics: the Scott-Strachey approach to programming language theory. MIT press, 1977.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1986

Authors and Affiliations

  • Alan Mycroft
    • 1
  • Neil D. Jones
    • 2
  1. 1.Computer LaboratoryCambridgeEngland
  2. 2.DIKUCopenhagen NDenmark

Personalised recommendations