Advertisement

Acta Informatica

, Volume 30, Issue 2, pp 103–129 | Cite as

Frameworks for abstract interpretation

  • Kim Marriott
Article

Abstract

Abstract interpretation theory provides a semantic foundation for dataflow analysis of programs by formalizing the relationship between analysis and semantics. In the original theory for abstract interpretation, due to Cousot and Cousot, this relationship was given in terms of an adjoined pair of functions. One function, called the abstraction function, mapped data to their best description, while the second function, called the concretization function, mapped descriptions to the largest data object they described. Since this time, however, a number of other “frameworks” for abstract interpretation have been developed, differing in how the descriptions are related to the actual data used in computation. For instance, one framework uses only abstraction functions, another uses only concretization functions, while yet another allows an arbitrary approximation relation. We illustrate that each of these frameworks has certain advantages and limitations. This motivates our development and study of a general framework which encompasses these other approaches. We examine this framework with regard to three questions: when does approximation lift from base functions to all expressions; when is approximation transitive; and when is there an optimal approximation and how can it be inferred? Answers to these questions are not only interesting in the context of our framework but also provide a better understanding of the other frameworks.

Keywords

Base Function Information Theory Computational Mathematic Computer System System Organization 
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.
    Birkhoff, G.: Lattice theory, 3rd edn. (AMS Coll. Publ. XXV). Baltimore: American Mathematical SocietyGoogle Scholar
  2. 2.
    Bobrow, D.G. (ed.): Qualitative reasoning about physical systems. Cambridge, MA: MIT, Press 1985Google Scholar
  3. 3.
    Bruynooghe, M., Janssens, G., Callebaut, A., Demoen, B.: Abstract interpretation: towards the global optimization of Prolog programs. Proceedings 1987 International Symposium Logic Programming, San Francisco, California, pp. 192–204 (1987)Google Scholar
  4. 4.
    Burn, G., Hankin, C., Abramsky, S.: Strictness analysis for higher order functions. Sci. Comput. Program.7, 249–278 (1986).Google Scholar
  5. 5.
    Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of Fixpoints. Proceedings Fourth Annual. ACM Symposium Principles of Programming Languages, Los Angeles, California, pp. 238–252 (1977).Google Scholar
  6. 6.
    Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. Proceedings Sixth Annual ACM Symposium. Principles of Programming Languages, San Antonio, Texas. pp. 269–282 (1979)Google Scholar
  7. 7.
    Cremonini, R., Marriott, K., Søndergaard, H.: A general theory for abstraction. Proceedings 1990 Australian Joint Conference Artificial Intelligence, pp. 121–134. Singapore: World Scientific Publishing 1990Google Scholar
  8. 8.
    Emden, M. van, Kowalski, R.: The semantics of logic as a programming language. J. ACM23, 733–742 (1976)Google Scholar
  9. 9.
    Jones, N.D.: Flow analysis of lambda expressions In: Even, S., Kariv, O. (eds.) Proceedings eighth International Colloquium Automata, Languages and Programming (Lect. Notes Comput. Sci., vol. 115, pp. 114–128) Berlin Heidelberg New York: Springer 1981Google Scholar
  10. 10.
    Jones, N.D.: Flow analysis of lazy higher-order functional programs. In: Abramsky, S., Hankin, C. (eds.) Abstract interpretation of declarative languages, pp. 103–122. Chichester: Ellis Horwood 1987Google Scholar
  11. 11.
    Marriott, K., Søndergaard, H.: Bottom-up dataflow analysis of normal logic programs. J. Logic Program.13, 181–204 (1992)Google Scholar
  12. 12.
    Marriott, K., Søndergaard, H.: Semantics-based dataflow analysis of logic programs. In: Ritter, G. (ed.) Information processing 89, pp. 601–606. Amsterdam: North-Holland 1989Google Scholar
  13. 13.
    Mycroft, A., Jones, N.: A relational framework for abstract interpretation. InPrograms as data objects (Lect. Notes Comput. Sci., vol. 154, pp. 536–547) Berlin Heidelberg New York: Springer 1986Google Scholar
  14. 14.
    Nielson, F.: A denotational framework for data flow analysis. Acta Inf.18, 265–287 (1982)Google Scholar
  15. 15.
    Nielson, F.: Strictness analysis and denotational abstract interpretation. Inf. Comput.76, 29–92 (1988)Google Scholar
  16. 16.
    Plaisted, D.: Theorem proving with abstraction. Artif. Intell.16, 47–108 (1981)Google Scholar
  17. 17.
    Sato, T., Tamaki, H.: Enumeration of success patterns in logic programs. Theor. Comput. Sci.34, 227–240 (1984)Google Scholar
  18. 18.
    Schmidt, D.: Denotational Semantics: A Methodology for Language Development. Needham Heights: Allyn and Bacon 1986Google Scholar

Copyright information

© Springer-Verlag 1993

Authors and Affiliations

  • Kim Marriott
    • 1
  1. 1.Department of Computer ScienceMonash UniversityClaytonAustralia

Personalised recommendations