Advertisement

On the desirable link between theory and practice in abstract interpretation (extended abstract)

  • Baudouin Le Charlier
  • Pierre Flener
Invited Tutorials
Part of the Lecture Notes in Computer Science book series (LNCS, volume 1302)

Abstract

Abstract interpretation was originally introduced by Patrick and Radhia Cousot as a unifying mathematical framework underlying the design of practical program analyses. In this paper, we reconsider some theoretical concepts and assumptions most often used in abstract interpretation. We argue that they impose too strong mathematical conditions on the abstract semantics of programs and so do not allow a practical and provably correct implementation of complex analyses. As a solution, we advocate the use of a weaker and more general methodology, which is essentially based on the concept of (explicit) specification. We illustrate the methodology through a historical review of the abstract interpretation system GAIA.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    C. Braem, B. Le Charlier, S. Modard, and P. Van Hentenryck. Cardinality analysis of Prolog. In M. Bruynooghe, editor, Proceedings of the International Logic Programming Symposium (ILPS'94), Ithaca NY, USA, November 1994. MIT Press.Google Scholar
  2. 2.
    M. Bruynooghe. A practical framework for the abstract interpretation of logic programs. Journal of Logic Programming, 10(2):91–124, February 1991.Google Scholar
  3. 3.
    M. Bruynooghe, G. Janssens, A. Callebaut, and B. Demoen. Abstract interpretation: Towards the global optimization of Prolog programs. In Proceedings of the 1987 Symposium on Logic Programming, pages 192–204, San Francisco, California, August 1987. Computer Society Press of the IEEE.Google Scholar
  4. 4.
    P. Codognet and G. File. Computations, abstractions and constraints in logic programs. In Proceedings of the fourth International Conference on Computer Languages (ICCL'92), Oakland, U.S.A., April 1992.Google Scholar
  5. 5.
    A. Cortesi, B. Le Charlier, and P. Van Hentenryck. Combination of abstract domains for logic programming. In Proceedings of the 21th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (POPL'9/), Portland, Oregon, January 1994.Google Scholar
  6. 6.
    A. Cortesi, B. Le Charlier, and P. Van Hentenryck. Type analysis of Prolog using type graphs. Journal of Logic Programming, 23(3):237–278, June 1995.Google Scholar
  7. 7.
    P. Cousot and R. Cousot. Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Conference Record of Fourth ACM Symposium on Programming Languages (POPL'77), pages 238–252, Los Angeles, California, January 1977.Google Scholar
  8. 8.
    P. Cousot and R. Cousot. Abstract interpretation and application to logic programs. Journal of Logic Programming, 13(2–3), 1992.Google Scholar
  9. 9.
    P. Cousot and R. Cousot. Abstract interpretation frameworks. Journal of Logic and Computation, 2(4):511–547, 1992.Google Scholar
  10. 10.
    P. Cousot and R. Cousot.Comparison of the Galois connection and widening/narrowing approaches to abstract interpretation (invited paper). In M. Bruynooghe and M. Wirsing, editors, Proceedings of the Fourth International Workshop on Programming Language Implementation and Logic Programming (PLILP'92), Lecture Notes in Computer Science, Leuven, August 1992. Springer-Verlag.Google Scholar
  11. 11.
    R.A. De Millo, R.J. Lipton, and A.J. Perlis. Social processes and proofs of theorems and programs. Communications of the ACM, 22(5):271–280, 1979. Comments in Communications of the ACM, 22(11):621–630, 1979.Google Scholar
  12. 12.
    G. Janssens and M. Bruynooghe. Deriving descriptions of possible values of program variables by means of abstract interpretation. Journal of Logic Programming, 13(2-3):205–258, 1992.Google Scholar
  13. 13.
    R.B. Kieburtz and M. Napierala.Abstract semantics.In S. Abramsky and C. Hankin, editors, Abstract Interpretation of Declarative Languages, chapter 7, pages 143–180. Ellis Horwood Limited, 1987.Google Scholar
  14. 14.
    B. Le Charlier and P. Flener.Specifications are necessarily informal, or: Some more myths of formal methods. Accepted by Journal of Systems and Software, Special Issue on Formal Methods Technology Transfer, forthcoming.Google Scholar
  15. 15.
    B. Le Charlier, K. Musumbu, and P. Van Hentenryck. Efficient and accurate algorithms for the abstract interpretation of Prolog programs. Technical Report 37/90, Institute of Computer Science, University of Namur, Belgium, 1990.Google Scholar
  16. 16.
    B. Le Charlier, K. Musumbu, and P. Van Hentenryck. A generic abstract interpretation algorithm and its complexity analysis. In K. Furukawa, editor, Proceedings of the Eighth International Conference on Logic Programming (ICLP'91), Paris, France, June 1991. MIT Press.Google Scholar
  17. 17.
    B. Le Charlier, S. Rossi, and P. Van Hentenryck. An abstract interpretation framework which accurately handles Prolog search-rule and the cut. In M. Bruynooghe, editor, Proceedings of the International Logic Programming Symposium (ILPS'94), Ithaca NY, USA, November 1994. MIT Press.Google Scholar
  18. 18.
    B. Le Charlier, S. Rossi, and P. Van Hentenryck. Sequence-Based Abstract Interpretation of Prolog. Technical Report RR-97-001, Facultés Universitaires Notre-Dame de la Paix, Institut d'Informatique, January 1997.Google Scholar
  19. 19.
    B. Le Charlier and P. Van Hentenryck. Experimental evaluation of a generic abstract interpretation algorithm for Prolog. ACM Transactions on Programming Languages and Systems (TOPLAS), 16(1):35–101, January 1994.Google Scholar
  20. 20.
    B. Le Charlier and P. Van Hentenryck. Reexecution in abstract interpretation of Prolog. Acta Informatica, 32:209–253, 1995.Google Scholar
  21. 21.
    K. Musumbu. Interprétation Abstraite de Programmes Prolog. PhD thesis, Institute of Computer Science, University of Namur, Belgium, September 1990. In French.Google Scholar
  22. 22.
    U.S. Reddy and S.N. Kamin. On the power of abstract interpretation. In J. Cordy, editor, Proceedings of the IEEE fourth International Conference on Computer Languages (ICCL'92), Oakland, U.S.A., April 1992. IEEE Press.Google Scholar
  23. 23.
    J. Stoy. Denotational Semantics: The Scott-Strachey Approach to Programming Language Theory. MIT Press, Cambridge Mass., 1977.Google Scholar
  24. 24.
    P. Van Hentenryck. Personal communication, June 1997. *** DIRECT SUPPORT *** A0008C44 00010Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 1997

Authors and Affiliations

  • Baudouin Le Charlier
    • 1
  • Pierre Flener
    • 2
  1. 1.Institut d'InformatiqueUniversity of NamurNamurBelgium
  2. 2.Department of Computer Engineering and Information ScienceBilkent UniversityBilkent, AnkaraTurkey

Personalised recommendations