skip to main content
research-article

Static analysis by abstract interpretation of embedded critical software

Published:24 January 2011Publication History
Skip Abstract Section

Abstract

Formal methods are increasingly used to help ensuring the correctness of complex, critical embedded software systems. We show how sound semantic static analyses based on Abstract Interpretation may be used to check properties at various levels of a software design: from high level models to low level binary code. After a short introduction to the Abstract Interpretation theory, we present a few current applications: checking for run-time errors at the C level, translation validation from C to assembly, and analyzing SAO models of communicating synchronous systems with imperfect clocks. We conclude by briey proposing some requirements to apply Abstract Interpretation to modeling languages such as UML.

References

  1. AbsInt, Angewandte Informatik. Astrée run-time error analyzer. http://www.absint.com/astree/.Google ScholarGoogle Scholar
  2. Bertrane, J. Proving the properties of communicating imperfectly-clocked synchronous systems. In Proceedings of the Thirteenth International Symposium on Static Analysis (SAS 06) (Seoul, 29--31 Aug. 2006), K. Yi, Ed., vol. 4134 of LNCS, Springer, pp. 370--386. Google ScholarGoogle ScholarDigital LibraryDigital Library
  3. Bertrane, J., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., and Rival, X. Static analysisGoogle ScholarGoogle Scholar
  4. Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., and Rival, X. Design and implementation of a special-purpose static program analyzer for safety-critical real-time embedded software, invited chapter. In The Essence of Computation: Complexity, Analysis, Transformation. Essays Dedicated to Neil D. Jones, T. Mogensen, D. Schmidt, and I. Sudborough, Eds., LNCS 2566. Springer, 2002, pp. 85--108. Google ScholarGoogle ScholarDigital LibraryDigital Library
  5. Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., and Rival, X. A static analyzer for large safety-critical software. In Proc. ACM SIGPLAN'2003 Conf. PLDI (San Diego, 2003), ACM Press, pp. 196--207. Google ScholarGoogle ScholarDigital LibraryDigital Library
  6. Bouissou, O., Conquet, E., Cousot, P., Cousot, R., Feret, J., Goubault, E., Ghorbal, K., Lesens, D., Mauborgne, L., Miné, A., Putot, S., Rival, X., and Turin, M. Space software validation using abstract interpretation. In Proc. of the Int. Space System Engineering Conference, Data Systems In Aerospace (DASIA'09) (Istanbul, Turkey, 26--29 May 2009), ESA publications, pp. 1--7.Google ScholarGoogle Scholar
  7. Cousot, P. The calculational design of a generic abstract interpreter. In Calculational System Design, M. Broy and R. Steinbrüggen, Eds. NATO ASI Series F. IOS Press, Amsterdam, 1999.Google ScholarGoogle Scholar
  8. Cousot, P., and Cousot, R. Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In Conf. Rec. of the 4th ACM Symp. on Principles of Programming Languages (POPL'77) (Jan. 1977), pp. 238--252. Google ScholarGoogle ScholarDigital LibraryDigital Library
  9. Cousot, P., and Cousot, R. Systematic design of program analysis frameworks. In Conference Record of the Sixth Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (San Antonio, Texas, 1979), ACM Press, pp. 269--282. Google ScholarGoogle ScholarDigital LibraryDigital Library
  10. Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., and Rival, X. Combination of abstractions in the Astrée static analyzer. In Proc. of the 11th Annual Asian Computing Science Conference (ASIAN'06) (Tokyo, Japan, 6--8 Dec. 2006), M. Okada and I. Satoh, Eds., vol. 4435 of LNCS, Springer, pp. 272--300. Google ScholarGoogle ScholarDigital LibraryDigital Library
  11. Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., and Rival, X. The Astrée static analyzer. http://www.astree.ens.fr.Google ScholarGoogle Scholar
  12. Cousot, P., and Halbwachs, N. Automatic discovery of linear restraints among variables of a program. In Conf. Rec. of the 5th Annual ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages (POPL'78) (Tucson, USA, 1978), ACM Press, pp. 84--97. Google ScholarGoogle ScholarDigital LibraryDigital Library
  13. Delmas, D., and Souyris, J. Astrée: from research to industry. In Proc. of the 14th Int. Static Analysis Symposium (SAS'07), G. Filé and H. Riis-Nielson, Eds., vol. 4634 of LNCS. Springer, Kongens Lyngby, Denmark, 22--24 Aug. 2007, pp. 437--451. Google ScholarGoogle ScholarDigital LibraryDigital Library
  14. Esterel Technologies. Scade suite™, the standard for the development of safety-critical embedded software in the avionics industry. http://www.esterel-technologies.com/.Google ScholarGoogle Scholar
  15. Feret, J. Static analysis of digital filters. In Proc. of the 13th European Symp. on Programming Languages and Systems (ESOP'04) (27 Mar.--4 Apr. 2004), D. Schmidt, Ed., vol. 2986 of LNCS, Springer, pp. 33--48.Google ScholarGoogle Scholar
  16. Feret, J. The arithmetic-geometric progression abstract domain. In Proc. of the 6th Int. Conf. on Verification, Model Checking and Abstract Interpretation (VMCAI'05) (Paris, France, 17--19 Jan. 2005), R. Cousot, Ed., vol. 3385 of LNCS, Springer, pp. 42--58. Google ScholarGoogle ScholarDigital LibraryDigital Library
  17. Goubault, E. Static analyses of oating-point operations. In Proc. of the 8th Int. Static Analysis Symposium (SAS'01) (2001), vol. 2126 of LNCS, Springer, pp. 234--259. Google ScholarGoogle ScholarDigital LibraryDigital Library
  18. Heckmann, R., and Ferdinand, C. Worst-case execution time prediction by static program analysis. In Proc. of the 18th Int. Parallel and Distributed Processing Symposium (IPDPS'04) (2004), IEEE Computer Society, pp. 26--30.Google ScholarGoogle Scholar
  19. IEEE Computer Society. IEEE standard for binary floating-point arithmetic. Tech. rep., ANSI/IEEE Std. 745--1985, 1985.Google ScholarGoogle Scholar
  20. Ioualalen, A. SARDANA: an abstract interpretation based tool for Optimization of numerical expressions in LUSTRE programs. In Tools for Automatic Program AnalysiS (TAPAS 2010), Perpignan, France (17 Sep. 2010).Google ScholarGoogle Scholar
  21. ISO/IEC JTC1/SC22/WG14 Working Group. C standard. Tech. Rep. 1124, ISO & IEC, 2007.Google ScholarGoogle Scholar
  22. Jeannet, B., and Miné, A. Apron: A library of numerical abstract domains for static analysis. Computer Aided Verification, CAV'2009 5643 of LNCS (2009), 661--667. Google ScholarGoogle ScholarDigital LibraryDigital Library
  23. Kästner, D., Wilhelm, S., Nenova, S., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., and Rival, X. Astrée: Proving the absence of rutime errors. In Proc. of Embedded Real-Time Software and Systems (ERTS'10) (Toulouse, France, May 2010), pp. 1--5. (to appear).Google ScholarGoogle Scholar
  24. Miné, A. Field-sensitive value analysis of embedded C programs with union types and pointer arithmetics. In Proc. of the ACM SIGPLAN-SIGBED Conf. on Languages, Compilers, and Tools for Embedded Systems (LCTES'06) (June 2006), ACM Press, pp. 54--63. Google ScholarGoogle ScholarDigital LibraryDigital Library
  25. Miné, A. The octagon abstract domain. Higher-Order and Symbolic Computation 19 (2006), 31--100. Google ScholarGoogle ScholarDigital LibraryDigital Library
  26. Moore, R. E. Interval Analysis. Prentice Hall, Englewood Cliffs N. J., USA, 1966.Google ScholarGoogle Scholar
  27. Randimbivololona, F., Souyris, J., Baudin, P., Pacalet, A., Raguideau, J., and Schoen, D. Applying formal proof techniques to avionics software: A pragmatic approach. In Proc. of the World Congress on Formal Methods (FM'99) (1999), vol. 1709 of LNCS, Springer, pp. 1798--1815. Google ScholarGoogle ScholarDigital LibraryDigital Library
  28. Rival, X. Symbolic transfer functions-based approaches to certified compilation. In Conf. Rec. of the 31st Annual ACM SIGPLAN-SIGACT Symp. on Principles of Programming Languages (POPL'04) (Venice, Italy, Jan. 2004), ACM Press, pp. 1--13. Google ScholarGoogle ScholarDigital LibraryDigital Library
  29. Rival, X., and Mauborgne, L. The trace partitioning abstract domain. ACM Trans. Program. Lang. Syst. 29, 5 (2007). Google ScholarGoogle ScholarDigital LibraryDigital Library
  30. Technical Commission on Aviation, R. DO-178B. Tech. rep., Software Considerations in Airborne Systems and Equipment Certification, 1999.Google ScholarGoogle Scholar
  31. von der Beeck, M. A formal semantics of uml-rt. In Model Driven Engineering Languages and Systems, 9th International Conference, MoDELS 2006, Genova, Italy, October 1-6, 2006, Proceedings (2006), O.Nierstrasz, J. Whittle, D. Harel, and G. Reggio, Eds., vol. 4199 of LNCS, Springer, pp. 768--782. Google ScholarGoogle ScholarDigital LibraryDigital Library

Index Terms

  1. Static analysis by abstract interpretation of embedded critical software

                Recommendations

                Comments

                Login options

                Check if you have access through your login credentials or your institution to get full access on this article.

                Sign in

                Full Access

                PDF Format

                View or Download as a PDF file.

                PDF

                eReader

                View online with eReader.

                eReader