Skip to main content

Combination of Abstractions in the ASTRÉE Static Analyzer

  • Conference paper

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 4435))

Abstract

We describe the structure of the abstract domains in the Astrée static analyzer, their modular organization into a hierarchical network, their cooperation to over-approximate the conjunction/reduced product of different abstractions and to ensure termination using collaborative widenings and narrowings. This separation of the abstraction into a combination of cooperative abstract domains makes Astrée extensible, an essential feature to cope with false alarms and ultimately provide sound formal verification of the absence of runtime errors in very large software.

This work was supported in part by the French exploratory project Astrée of the Réseau National de recherche et d’innovation en Technologies Logicielles (RNTL).

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: 4th ACM POPL, pp. 238–252 (1977)

    Google Scholar 

  2. Cousot, P., Cousot, R.: Abstract interpretation frameworks. Journal of Logic and Computation 2, 511–547 (1992)

    Article  MathSciNet  MATH  Google Scholar 

  3. Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software, invited chapter. In: Mogensen, T., Schmidt, D., Sudborough, I. (eds.) The Essence of Computation. LNCS, vol. 2566, pp. 85–108. Springer, Heidelberg (2002)

    Chapter  Google Scholar 

  4. Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: A static analyzer for large safety-critical software. In: Proc. ACM SIGPLAN ’2003 Conf, PLDI, San Diego, pp. 196–207. ACM Press, New York (2003)

    Google Scholar 

  5. Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: The ASTRÉE analyzer. In: Sagiv, M. (ed.) Proc. 14th ESOP ’2005, Edinburgh, 4–8 Apr. 2005. LNCS 3444, pp. 21–30. Springer, Heidelberg (2005)

    Google Scholar 

  6. Mauborgne, L.: ASTRÉE: Verification of absence of run-time error. In: Jacquart, P. (ed.) Building the Information Society, pp. 385–392. Kluwer Academic Publishers, Dordrecht (2004)

    Chapter  Google Scholar 

  7. Miné, A.: Field-sensitive value analysis of embedded C programs with union types and pointer arithmetics. In: Proc. LCTES 2006. Ottawa, Ontario, Canada, 14–16 June 2006, pp. 54–63. ACM Press, New York (2006)

    Google Scholar 

  8. Monniaux, D.: The parallel implementation of the ASTRÉE static analyzer. In: Yi, K. (ed.) APLAS 2005. LNCS, vol. 3780, Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  9. Cousot, P., Cousot, R.: Static determination of dynamic properties of programs. In: Proceedings of the Second International Symposium on Programming, Paris, France, Dunod, Paris, France, pp. 106–130 (1976)

    Google Scholar 

  10. Miné, A.: Symbolic methods to enhance the precision of numerical abstract domains. In: Emerson, E.A., Namjoshi, K.S. (eds.) VMCAI 2006. LNCS, vol. 3855, pp. 348–363. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  11. Miné, A.: The octagon abstract domain. Higher-Order and Symbolic Computation 19, 31–100 (2006)

    Article  MATH  Google Scholar 

  12. Feret, J.: Static analysis of digital filters. In: Schmidt, D. (ed.) ESOP 2004. LNCS, vol. 2986, pp. 33–48. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  13. Feret, J.: The arithmetic-geometric progression abstract domain. In: Cousot, R. (ed.) VMCAI 2005. LNCS, vol. 3385, pp. 2–58. Springer, Heidelberg (2005)

    Google Scholar 

  14. Mauborgne, L., Rival, X.: Trace partitioning in abstract interpretation based static analyzers. In: Sagiv, M. (ed.) ESOP 2005. LNCS, vol. 3444, pp. 21–30. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  15. Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: 6th ACM POPL, pp. 269–282 (1979)

    Google Scholar 

  16. Leroy, X., Doligez, D., Garrigue, J., Rémy, D., Vouillon, J.: The Objective Caml system, documentation and user’s manual (release 3.06). Technical report, INRIA, Rocquencourt, France (2002)

    Google Scholar 

  17. Miné, A.: The octagon abstract domain library (2006), www.di.ens.fr/~mine/oct/

  18. ANSI/ISO: Programming languages – C. (1999) Standard ISO/IEC 9899:1999(E)

    Google Scholar 

  19. Henzinger, T.A., Jhala, R., Majumdar, R., Sutre, G.: Software verification with BLAST. In: Ball, T., Rajamani, S.K. (eds.) Model Checking Software. LNCS, vol. 2648, pp. 235–239. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  20. Cousot, P.: Verification by abstract interpretation, invited chapter. In: Dershowitz, N. (ed.) Verification: Theory and Practice. LNCS, vol. 2772, pp. 243–268. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  21. Cousot, P.: The calculational design of a generic abstract interpreter, invited chapter. In: Broy, M., Steinbrüggen, R. (eds.) Calculational System Design. NATO Science Series, Series F: Computer and Systems Sciences, vol. 173, pp. 421–505. IOS Press, Amsterdam (1999)

    Google Scholar 

  22. Miné, A.: Relational abstract domains for the detection of floating-point run-time errors. In: Schmidt, D. (ed.) ESOP 2004. LNCS, vol. 2986, pp. 3–17. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  23. Cousot, P.: MIT course 16.399: Abstract Interpretation (2005), http://web.mit.edu/afs/athena.mit.edu/course/16/16.399/www/

Download references

Author information

Authors and Affiliations

Authors

Editor information

Mitsu Okada Ichiro Satoh

Rights and permissions

Reprints and permissions

Copyright information

© 2007 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Cousot, P. et al. (2007). Combination of Abstractions in the ASTRÉE Static Analyzer. In: Okada, M., Satoh, I. (eds) Advances in Computer Science - ASIAN 2006. Secure Software and Related Issues. ASIAN 2006. Lecture Notes in Computer Science, vol 4435. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77505-8_23

Download citation

  • DOI: https://doi.org/10.1007/978-3-540-77505-8_23

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-77504-1

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

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics