Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
skip to main content
research-article

Static analysis by abstract interpretation of embedded critical software

Published: 24 January 2011 Publication History

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/.
[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.
[3]
Bertrane, J., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., and Rival, X. Static analysis
[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.
[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.
[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.
[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.
[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.
[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.
[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.
[11]
Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., and Rival, X. The Astrée static analyzer. http://www.astree.ens.fr.
[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.
[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.
[14]
Esterel Technologies. Scade suite™, the standard for the development of safety-critical embedded software in the avionics industry. http://www.esterel-technologies.com/.
[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.
[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.
[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.
[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.
[19]
IEEE Computer Society. IEEE standard for binary floating-point arithmetic. Tech. rep., ANSI/IEEE Std. 745--1985, 1985.
[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).
[21]
ISO/IEC JTC1/SC22/WG14 Working Group. C standard. Tech. Rep. 1124, ISO & IEC, 2007.
[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.
[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).
[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.
[25]
Miné, A. The octagon abstract domain. Higher-Order and Symbolic Computation 19 (2006), 31--100.
[26]
Moore, R. E. Interval Analysis. Prentice Hall, Englewood Cliffs N. J., USA, 1966.
[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.
[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.
[29]
Rival, X., and Mauborgne, L. The trace partitioning abstract domain. ACM Trans. Program. Lang. Syst. 29, 5 (2007).
[30]
Technical Commission on Aviation, R. DO-178B. Tech. rep., Software Considerations in Airborne Systems and Equipment Certification, 1999.
[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.

Cited By

View all
  • (2024)Monotonicity and the Precision of Program AnalysisProceedings of the ACM on Programming Languages10.1145/36328978:POPL(1629-1662)Online publication date: 5-Jan-2024
  • (2024)Software verification challenges in the blockchain ecosystemInternational Journal on Software Tools for Technology Transfer10.1007/s10009-024-00758-x26:4(431-444)Online publication date: 12-Jul-2024
  • (2023)A Personal Historical Perspective on Abstract InterpretationThe French School of Programming10.1007/978-3-031-34518-0_9(205-239)Online publication date: 11-Oct-2023
  • Show More Cited By

Recommendations

Comments

Information & Contributors

Information

Published In

cover image ACM SIGSOFT Software Engineering Notes
ACM SIGSOFT Software Engineering Notes  Volume 36, Issue 1
January 2011
210 pages
ISSN:0163-5948
DOI:10.1145/1921532
Issue’s Table of Contents

Publisher

Association for Computing Machinery

New York, NY, United States

Publication History

Published: 24 January 2011
Published in SIGSOFT Volume 36, Issue 1

Check for updates

Author Tags

  1. abstract interpretation
  2. critical software
  3. embedded systems
  4. static analysis
  5. system design
  6. system modeling
  7. system verification

Qualifiers

  • Research-article

Contributors

Other Metrics

Bibliometrics & Citations

Bibliometrics

Article Metrics

  • Downloads (Last 12 months)16
  • Downloads (Last 6 weeks)2
Reflects downloads up to 13 Sep 2024

Other Metrics

Citations

Cited By

View all
  • (2024)Monotonicity and the Precision of Program AnalysisProceedings of the ACM on Programming Languages10.1145/36328978:POPL(1629-1662)Online publication date: 5-Jan-2024
  • (2024)Software verification challenges in the blockchain ecosystemInternational Journal on Software Tools for Technology Transfer10.1007/s10009-024-00758-x26:4(431-444)Online publication date: 12-Jul-2024
  • (2023)A Personal Historical Perspective on Abstract InterpretationThe French School of Programming10.1007/978-3-031-34518-0_9(205-239)Online publication date: 11-Oct-2023
  • (2022)On the Need for a Common API for Abstract Domains of Object-Oriented ProgramsProceedings of the 24th ACM International Workshop on Formal Techniques for Java-like Programs10.1145/3611096.3611100(15-17)Online publication date: 7-Jun-2022
  • (2021)Annotate once – analyze anywhere: context-aware WCET analysis by user-defined abstractionsProceedings of the 22nd ACM SIGPLAN/SIGBED International Conference on Languages, Compilers, and Tools for Embedded Systems10.1145/3461648.3463847(54-66)Online publication date: 22-Jun-2021
  • (2020)Memory-Efficient Fixpoint ComputationStatic Analysis10.1007/978-3-030-65474-0_3(35-64)Online publication date: 18-Nov-2020
  • (2018)Numerical program optimisation by automatic improvement of the accuracy of computationsInternational Journal of Intelligent Engineering Informatics10.5555/3212193.32122006:1-2(115-145)Online publication date: 1-Jan-2018
  • (2018)Numerical program optimisation by automatic improvement of the accuracy of computationsInternational Journal of Intelligent Engineering Informatics10.5555/3212181.32121886:1-2(115-145)Online publication date: 1-Jan-2018
  • (2018)Spatio-temporal context reductionProceedings of the 40th International Conference on Software Engineering10.1145/3180155.3180178(327-337)Online publication date: 27-May-2018
  • (2017)Numerical Accuracy Improvement by Interprocedural Program TransformationProceedings of the 20th International Workshop on Software and Compilers for Embedded Systems10.1145/3078659.3078662(1-10)Online publication date: 12-Jun-2017
  • Show More Cited By

View Options

Get Access

Login options

View options

PDF

View or Download as a PDF file.

PDF

eReader

View online with eReader.

eReader

Media

Figures

Other

Tables

Share

Share

Share this Publication link

Share on social media