Informatics pp 138-156

Part of the Lecture Notes in Computer Science book series (LNCS, volume 2000) | Cite as

Abstract Interpretation Based Formal Methods and Future Challenges

  • Patrick Cousot
Chapter

Abstract

In order to contribute to the solution of the software reliability problem, tools have been designed to analyze statically the run-time behavior of programs. Because the correctness problem is undecidable, some form of approximation is needed. The purpose of abstract interpretation is to formalize this idea of approximation. We illustrate informally the application of abstraction to the semantics of programming languages as well as to static program analysis. The main point is that in order to reason or compute about a complex system, some information must be lost, that is the observation of executions must be either partial or at a high level of abstraction.

A few challenges for static program analysis by abstract interpretation are finally briefly discussed.

The electronic version of this paper includes a comparison with other formal methods: typing, model-checking and deductive methods.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    R. Barbuti, R. Giacobazzi, and G. Levi. A general framework for semantics-based bottom-up abstract interpretation of logic programs. TOPLAS, 15(1):133–181, 1993.CrossRefGoogle Scholar
  2. 2.
    B. Blanchet. Escape analysis for object-oriented languages: Application to Java. OOPSLA’99. SIGPLAN Not. 34(10):20–34, 1999.CrossRefGoogle Scholar
  3. 3.
    F. Bueno, M.J. García de la Banda, and M.V. Hermenegildo. Effectiveness of abstract interpretation in automatic parallelization: A case study in logic programming. TOPLAS, 21(2):189–239, 1999.CrossRefGoogle Scholar
  4. 4.
    G.L. Burn, C.L. Hankin, and S. Abramsky. Strictness analysis of higher-order functions. Sci. Comput. Programming, 7:249–278, 1986.MATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    M. Codish, D. Dams, G. Filé, and M. Bruynooghe. Freeness analysis for logic programs-and correctness? Proc. ICLP’ 93, pp. 116–131. MIT Press, 1993.Google Scholar
  6. 6.
    M. Codish, H. Søndergaard, and P.J. Stuckey. Sharing and groundness dependencies in logic programs. TOPLAS, 21(5):948–976, 1999.CrossRefGoogle Scholar
  7. 7.
    A. Cortesi and G. Filé. Sharing is optimal. J. Logic Programming, 38(3):371–386, 1999.MATHCrossRefMathSciNetGoogle Scholar
  8. 8.
    A. Cortesi, G. Filé, R. Giacobazzi, C. Palamidessi, and F. Ranzato. Complementation in abstract interpretation. TOPLAS, 19(1):7–47, 1997.CrossRefGoogle Scholar
  9. 9.
    A. Cortesi, G. Filé, and W.H. Winsborough. Optimal groundness analysis using propositional logic. J. Logic Programming, 27(2):137–167, 1996.MATHCrossRefMathSciNetGoogle Scholar
  10. 10.
    P. Cousot. Méthodes itératives de construction et d’approximation de points fixes d’opérateurs monotones sur un treillis, analyse sémantique de programmes. Thése d’État ès sciences mathématiques, Univ. of Grenoble, 1978.Google Scholar
  11. 11.
    P. Cousot. Constructive design of a hierarchy of semantics of a transition system by abstract interpretation. ENTCS, 6, 1997. http://www.elsevier.nl/locate/entcs/volume6.html, 25 pages.
  12. 12.
    P. Cousot. Types as abstract interpretations. 24 th POPL, pp. 316–331. ACM Press, 1997.Google Scholar
  13. 13.
    P. Cousot. The calculational design of a generic abstract interpreter. In M. Broy and R. Steinbrüggen, editors, Calculational System Design, volume 173, pp. 421–505. NATO Science Series, Series F: Computer and Systems Sciences. IOS Press, 1999.Google Scholar
  14. 14.
    P. Cousot. Partial completeness of abstract fixpoint checking. SARA’2000, LNAI 1864, pp. 1–25. Springer-Verlag, 2000.Google Scholar
  15. 15.
    P. Cousot. Constructive design of a hierarchy of semantics of a transition system by abstract interpretation. Theoret. Comput. Sci., To appear (Preliminary version in [11]).Google Scholar
  16. 16.
    P. Cousot and R. Cousot. Static determination of dynamic properties of programs. 2 nd Int. Symp. on Programming, pp. 106–130. Dunod, 1976.Google Scholar
  17. 17.
    P. Cousot and R. Cousot. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. 4th POPL, pp. 238–252. ACM Press, 1977.Google Scholar
  18. 18.
    P. Cousot and R. Cousot. Automatic synthesis of optimal invariant assertions: mathematical foundations. Symp. on Artificial Intelligence & Programming Languages, SIGPLAN Not. 12(8):1–12, 1977.CrossRefGoogle Scholar
  19. 19.
    P. Cousot and R. Cousot. Systematic design of program analysis frameworks. 6th POPL, pp. 269–282. ACM Press, 1979.Google Scholar
  20. 20.
    P. Cousot and R. Cousot. Semantic analysis of communicating sequential processes. 7 th ICALP, LNCS 85, pp. 119–133. Springer-Verlag, 1980.Google Scholar
  21. 21.
    P. Cousot and R. Cousot. Invariance proof methods and analysis techniques for parallel programs. In A.W. Biermann, G. Guiho, and Y. Kodrato., editors, Automatic Program Construction Techniques, ch. 12, pp. 243–271. Macmillan, 1984.Google Scholar
  22. 22.
    P. Cousot and R. Cousot. Abstract interpretation and application to logic programs 4. J. Logic Programming, 13(2-3):103–179, 1992.MATHCrossRefMathSciNetGoogle Scholar
  23. 23.
    P. Cousot and R. Cousot. Abstract interpretation frameworks. J. Logic and Comp., 2(4):511–547, Aug. 1992.MATHCrossRefMathSciNetGoogle Scholar
  24. 24.
    P. Cousot and R. Cousot. Inductive definitions, semantics and abstract interpretation. 19 th POPL, pp. 83–94. ACM Press, 1992.Google Scholar
  25. 25.
    P. Cousot and R. Cousot. Higher-order abstract interpretation (and application to comportment analysis generalizing strictness, termination, projection and PER analysis of functional languages). Proc. 1994 ICCL, pp. 95–112. IEEE Comp. Soc. Press, 1994.Google Scholar
  26. 26.
    P. Cousot and R. Cousot. Comparing the Galois connection and widening/ narrowing approaches to abstract interpretation. Proc. 4th PLILP’92, LNCS 631, pp. 269–295. Springer-Verlag, 1992.Google Scholar
  27. 27.
    P. Cousot and R. Cousot. Formal language, grammar and set-constraint-based program analysis by abstract interpretation. 7 th FPCA, pp. 170–181. ACM Press, 1995.Google Scholar
  28. 28.
    P. Cousot and R. Cousot. Temporal abstract interpretation. 27 th POPL, pp. 12–25. ACM Press, 2000.Google Scholar
  29. 29.
    P. Cousot and N. Halbwachs. Automatic discovery of linear restraints among variables of a program. 5 th POPL, pp. 84–97. ACM Press, 1978.Google Scholar
  30. 30.
    DAEDALUS: Validation of critical software by static analysis and abstract testing. P. Cousot, R. Cousot, A. Deutsch, C. Ferdinand, É. Goubault, N. Jones, D. Pilaud, F. Randimbivololona, M. Sagiv, H. Seidel, and R. Wilhelm. Project IST-1999-20527 of the european 5th Framework Programme, Oct. 2000–Oct. 2002.Google Scholar
  31. 31.
    S.K. Debray. Formal bases for data.ow analysis of logic programs. In G. Levi, editor, Advances in Logic Programming Theory, Int. Sec. 3, pp. 115–182. Clarendon Press, 1994.Google Scholar
  32. 32.
    A. Deutsch. Semantic models and abstract interpretation techniques for inductive data structures and pointers. Proc. PEPM’95, pp. 226–229. ACM Press, 1995.Google Scholar
  33. 33.
    N. Dor, M. Rodeh, and M. Sagiv. Checking cleanness in linked lists. Proc. SAS’ 2000, LNCS 1824, pp. 115–134. Springer-Verlag, 2000.Google Scholar
  34. 34.
    C. Ferdinand, F. Martin, R. Wilhelm, and M. Alt. Cache behavior prediction by abstract interpretation. Sci. Comput. Programming, 35(1):163–189, 1999.MATHCrossRefGoogle Scholar
  35. 35.
    J. Feret. Confidentiality analysis of mobile systems. Proc. SAS’ 2000, LNCS 1824, pp. 135–154. Springer-Verlag, 2000.Google Scholar
  36. 36.
    R. Giacobazzi, F. Ranzato, and F. Scozzari. Making abstract interpretations complete. J. ACM, 47(2):361–416, 2000.CrossRefMathSciNetMATHGoogle Scholar
  37. 37.
    P. Granger. Static analysis of arithmetical congruences. Int. J. Comput. Math., 30:165–190, 1989.MATHCrossRefGoogle Scholar
  38. 38.
    P. Granger. Static analysis of linear congruence equalities among variables of a program. 493, pp. 169–192. Springer-Verlag, 1991.MathSciNetGoogle Scholar
  39. 39.
    N. Halbwachs. About synchronous programming and abstract interpretation. Sci. Comput. Programming, 31(1):75–89, 1998.MATHCrossRefGoogle Scholar
  40. 40.
    R.R. Hansen, J.G. Jensen, F. Nielson, and H. Riis Nielson. Abstract interpretation of mobile ambients. Proc. SAS’ 99, LNCS 1694, pp. 134–138. Springer-Verlag, 1999.Google Scholar
  41. 41.
    W.L. Harrison. Can abstract interpretation become a main stream compiler technology? (abstract). Proc. SAS’ 97, LNCS 1302, p. 395. Springer-Verlag, 1997.Google Scholar
  42. 42.
    T.A. Henzinger, R. Majumbar, F. Mang, and J.-F. Raskin. Abstract interpretation of game properties. Proc. SAS’ 2000, LNCS 1824, pp. 220–239. Springer-Verlag, 2000.Google Scholar
  43. 43.
    N.D. Jones. Combining abstract interpretation and partial evaluation (brief overview). Proc. SAS’ 97, LNCS 1302, pp. 396–405. Springer-Verlag, 1997.Google Scholar
  44. 44.
    P. Lacan, J.N. Monfort, L.V.Q. Ribal, A. Deutsch, and G. Gonthier. The software reliability verification process: The Ariane 5 example. DASIA’98-DAta Systems In Aerospace, ESA Publications, 1998.Google Scholar
  45. 45.
    B. Le Charlier and P. Van Hentenryck. Experimental evaluation of a generic abstract interpretation algorithm for Prolog. Proc. ICCL92, pp. 137–146. IEEE Comp. Soc. Press, 1992.Google Scholar
  46. 46.
    F. Martin. Generating Program Analyzers. Pirrot Verlag, Saarbrücken, 1999.Google Scholar
  47. 47.
    F. Masdupuy. Semantic analysis of interval congruences. FMPA, LNCS 735, pp. 142–155. Springer-Verlag, 1993.Google Scholar
  48. 48.
    L. Mauborgne. Tree schemata and fair termination. Proc. SAS’ 2000, LNCS 1824, pp. 302–321. Springer-Verlag, 2000.Google Scholar
  49. 49.
    D. Monniaux. Abstract interpretation of probabilistic semantics. Proc. SAS’ 2000, LNCS 1824, pp. 322–339. Springer-Verlag, 2000.Google Scholar
  50. 50.
    A. Mycroft. Abstract Interpretation and Optimising Transformations for Applicative Programs. Ph.D. Dissertation, CST-15-81, Univ. of Edinburgh, 1981.Google Scholar
  51. 51.
    F. Randimbivololona, J. Souyris, and A. Deutsch. Improving avionics software verification cost-effectiveness: Abstract interpretation based technology contribution. DASIA’2000-DAta Systems In Aerospace, ESA Publications, 2000.Google Scholar
  52. 52.
    D.A. Schmidt and B. Steffen. Program analysis as model checking of abstract interpretations. Proc. SAS’ 98, LNCS 1503, pp. 351–380. Springer-Verlag, 1998.Google Scholar
  53. 53.
    J. Stransky. A lattice for abstract interpretation of dynamic (lisp-like) structures. Inform. and Comput., 101(1):70–102, 1992.MATHCrossRefMathSciNetGoogle Scholar
  54. 54.
    TUAMOTU: Tatouage électronique sémantique de code mobile Java. P. Cousot, R. Cousot, and M. Riguidel. Project RNRT 1999 n°95, Oct. 1999–Oct. 2001.Google Scholar
  55. 55.
    R. Vallée-Rai, H. Hendren, P. Lam, É Gagnon, and P. Co. Soot-a Javatm optimization framework. Proc. CASCON’ 99, 1999.Google Scholar
  56. 56.
    F. Védrine. Binding-time analysis and strictness analysis by abstract interpretation. Proc. SAS’ 95, LNCS 983, pp. 400–417. Springer-Verlag, 1995.Google Scholar
  57. 57.
    A. Venet. Automatic determination of communication topologies in mobile systems. Proc. SAS’ 98, LNCS 1503, pp. 152–167. Springer-Verlag, 1998.Google Scholar
  58. 58.
    A. Venet. Automatic analysis of pointer aliasing for untyped programs. Sci. Comput. Programming, 35(1):223–248, 1999.MATHCrossRefMathSciNetGoogle Scholar
  59. 59.
    Kwangkeun Yi. An abstract interpretation for estimating uncaught exceptions in standard ML programs. Sci. Comput. Programming, 31(1):147–173, 1998.MATHCrossRefMathSciNetGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Patrick Cousot
    • 1
  1. 1.École normale supérieureParis cedex 05Département d’informatiqueFrance

Personalised recommendations