Skip to main content

2017 | OriginalPaper | Buchkapitel

Structuring Abstract Interpreters Through State and Value Abstractions

verfasst von : Sandrine Blazy, David Bühler, Boris Yakobowski

Erschienen in: Verification, Model Checking, and Abstract Interpretation

Verlag: Springer International Publishing

Aktivieren Sie unsere intelligente Suche, um passende Fachinhalte oder Patente zu finden.

search-config
loading …

Abstract

We present a new modular way to structure abstract interpreters. Modular means that new analysis domains may be plugged-in. These abstract domains can communicate through different means to achieve maximal precision. First, all abstractions work cooperatively to emit alarms that exclude the undesirable behaviors of the program. Second, the state abstract domains may exchange information through abstractions of the possible value for expressions. Those value abstractions are themselves extensible, should two domains require a novel form of cooperation. We used this approach to design \({\textsc {eva}}\), an abstract interpreter for C implemented within the \(\textsc {Frama}\text {-}\textsc {C}\) framework. We present the domains that are available so far within \({\textsc {eva}}\), and show that this communication mechanism is able to handle them seamlessly.

Sie haben noch keine Lizenz? Dann Informieren Sie sich jetzt über unsere Produkte:

Springer Professional "Wirtschaft+Technik"

Online-Abonnement

Mit Springer Professional "Wirtschaft+Technik" erhalten Sie Zugriff auf:

  • über 102.000 Bücher
  • über 537 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Maschinenbau + Werkstoffe
  • Versicherung + Risiko

Jetzt Wissensvorsprung sichern!

Springer Professional "Technik"

Online-Abonnement

Mit Springer Professional "Technik" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 390 Zeitschriften

aus folgenden Fachgebieten:

  • Automobil + Motoren
  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Elektrotechnik + Elektronik
  • Energie + Nachhaltigkeit
  • Maschinenbau + Werkstoffe




 

Jetzt Wissensvorsprung sichern!

Springer Professional "Wirtschaft"

Online-Abonnement

Mit Springer Professional "Wirtschaft" erhalten Sie Zugriff auf:

  • über 67.000 Bücher
  • über 340 Zeitschriften

aus folgenden Fachgebieten:

  • Bauwesen + Immobilien
  • Business IT + Informatik
  • Finance + Banking
  • Management + Führung
  • Marketing + Vertrieb
  • Versicherung + Risiko




Jetzt Wissensvorsprung sichern!

Fußnoten
1
Directory src/plugins/value/ of the \(\textsc {Frama}\text {-}\textsc {C}\) source files, available at http://​frama-c.​com/​download.​html.
 
2
Bitfields, flexible array members and some GNU extensions are supported. Support for dynamic allocation is preliminary. Recursion, \(\texttt {{setjmp}/}{} \texttt {{longjmp}}\), \(\texttt {complex}\) types, \(\texttt {alloca}\) and variable-length arrays are not supported.
 
3
These are not undefined behaviors w.r.t. the ISO C99 or IEEE 754 specifications, but we choose to report them as undesirable errors.
 
Literatur
1.
Zurück zum Zitat Balakrishnan, G., Reps, T.: Recency-abstraction for heap-allocated storage. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134, pp. 221–239. Springer, Heidelberg (2006). doi:10.1007/11823230_15 CrossRef Balakrishnan, G., Reps, T.: Recency-abstraction for heap-allocated storage. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134, pp. 221–239. Springer, Heidelberg (2006). doi:10.​1007/​11823230_​15 CrossRef
2.
Zurück zum Zitat Beyer, D., Henzinger, T.A., Théoduloz, G.: Program analysis with dynamic precision adjustment. In: ASE, pp. 29–38 (2008) Beyer, D., Henzinger, T.A., Théoduloz, G.: Program analysis with dynamic precision adjustment. In: ASE, pp. 29–38 (2008)
3.
Zurück zum Zitat Bonichon, R., Cuoq, P.: A mergeable interval map. Stud. Inform. Univ. 9(1), 5–37 (2011) Bonichon, R., Cuoq, P.: A mergeable interval map. Stud. Inform. Univ. 9(1), 5–37 (2011)
4.
Zurück zum Zitat Boulanger, J.-L. (ed.): Static Analysis of Software: The Abstract Interpretation. Wiley-ISTE, New York (2011) Boulanger, J.-L. (ed.): Static Analysis of Software: The Abstract Interpretation. Wiley-ISTE, New York (2011)
5.
Zurück zum Zitat Brat, G., Navas, J.A., Shi, N., Venet, A.: IKOS: A framework for static analysis based on abstract interpretation. In: Giannakopoulou, D., Salaün, G. (eds.) SEFM 2014. LNCS, vol. 8702, pp. 271–277. Springer, Cham (2014). doi:10.1007/978-3-319-10431-7_20 Brat, G., Navas, J.A., Shi, N., Venet, A.: IKOS: A framework for static analysis based on abstract interpretation. In: Giannakopoulou, D., Salaün, G. (eds.) SEFM 2014. LNCS, vol. 8702, pp. 271–277. Springer, Cham (2014). doi:10.​1007/​978-3-319-10431-7_​20
6.
Zurück zum Zitat Cortesi, A., Le Charlier, B., Van Hentenryck, P.: Combinations of abstract domains for logic programming: open product and generic pattern construction. Sci. Comput. Program. 38(1–3), 27–71 (2000)MathSciNetCrossRefMATH Cortesi, A., Le Charlier, B., Van Hentenryck, P.: Combinations of abstract domains for logic programming: open product and generic pattern construction. Sci. Comput. Program. 38(1–3), 27–71 (2000)MathSciNetCrossRefMATH
7.
Zurück zum Zitat Cortesi, A., Costantini, G., Ferrara, P.: A survey on product operators in abstract interpretation. In: Essays Dedicated to D. Schmidt on the Occasion of his 60th Birthday, pp. 325–336 (2013) Cortesi, A., Costantini, G., Ferrara, P.: A survey on product operators in abstract interpretation. In: Essays Dedicated to D. Schmidt on the Occasion of his 60th Birthday, pp. 325–336 (2013)
8.
Zurück zum Zitat Cousot, P.: The calculational design of a generic abstract interpreter. In: Calculational System Design. NATO ASI Series F. IOS Press (1999) Cousot, P.: The calculational design of a generic abstract interpreter. In: Calculational System Design. NATO ASI Series F. IOS Press (1999)
9.
Zurück zum Zitat Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Principles of Programming Languages, pp. 238–252 (1977) Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Principles of Programming Languages, pp. 238–252 (1977)
10.
Zurück zum Zitat Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: Principles of Programming Languages, pp. 269–282 (1979) Cousot, P., Cousot, R.: Systematic design of program analysis frameworks. In: Principles of Programming Languages, pp. 269–282 (1979)
11.
Zurück zum Zitat Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: Combination of abstractions in the ASTRÉE static analyzer. In: Okada, M., Satoh, I. (eds.) ASIAN 2006. LNCS, vol. 4435, pp. 272–300. Springer, Heidelberg (2007). doi:10.1007/978-3-540-77505-8_23 CrossRef Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: Combination of abstractions in the ASTRÉE static analyzer. In: Okada, M., Satoh, I. (eds.) ASIAN 2006. LNCS, vol. 4435, pp. 272–300. Springer, Heidelberg (2007). doi:10.​1007/​978-3-540-77505-8_​23 CrossRef
12.
Zurück zum Zitat Cuoq, P., Hilsenkopf, P., Kirchner, F., Labbé, S., Thuy, N., Yakobowski, B.: Formal verification of software important to safety using the Frama-C tool suite. In: NPIC & HMIT (2012) Cuoq, P., Hilsenkopf, P., Kirchner, F., Labbé, S., Thuy, N., Yakobowski, B.: Formal verification of software important to safety using the Frama-C tool suite. In: NPIC & HMIT (2012)
13.
14.
Zurück zum Zitat International Organization for Standardization (ISO). International Standard ISO/IEC 9899: 1999 - Programming languages - C. Technical Corrigendum 3 (2007) International Organization for Standardization (ISO). International Standard ISO/IEC 9899: 1999 - Programming languages - C. Technical Corrigendum 3 (2007)
15.
Zurück zum Zitat Jeannet, B., Miné, A.: Apron: A library of numerical abstract domains for static analysis. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 661–667. Springer, Berlin (2009). doi:10.1007/978-3-642-02658-4_52 CrossRef Jeannet, B., Miné, A.: Apron: A library of numerical abstract domains for static analysis. In: Bouajjani, A., Maler, O. (eds.) CAV 2009. LNCS, vol. 5643, pp. 661–667. Springer, Berlin (2009). doi:10.​1007/​978-3-642-02658-4_​52 CrossRef
16.
Zurück zum Zitat Jourdan, J.-H., Laporte, V., Blazy, S., Leroy, X., Pichardie, D.: A formally-verified C static analyzer. In: Principles of Programming Language, pp. 247–259 (2015) Jourdan, J.-H., Laporte, V., Blazy, S., Leroy, X., Pichardie, D.: A formally-verified C static analyzer. In: Principles of Programming Language, pp. 247–259 (2015)
17.
Zurück zum Zitat Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-C: A software analysis perspective. Formal Asp. Comput. 27(3), 573–609 (2015)MathSciNetCrossRef Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-C: A software analysis perspective. Formal Asp. Comput. 27(3), 573–609 (2015)MathSciNetCrossRef
18.
19.
Zurück zum Zitat Miné, A.: The octagon abstract domain. In: Burd, E., Aiken, P., Koschke, R. (eds.) Proceedings of the Eighth Working Conference on Reverse Engineering, WCRE 2001, Stuttgart, Germany, 2–5 October 2001, p. 310. IEEE Computer Society (2001) Miné, A.: The octagon abstract domain. In: Burd, E., Aiken, P., Koschke, R. (eds.) Proceedings of the Eighth Working Conference on Reverse Engineering, WCRE 2001, Stuttgart, Germany, 2–5 October 2001, p. 310. IEEE Computer Society (2001)
20.
Zurück zum Zitat Miné, A.: Field-sensitive value analysis of embedded C programs with union types and pointer arithmetics. In: LCTES, pp. 54–63. ACM (2006) Miné, A.: Field-sensitive value analysis of embedded C programs with union types and pointer arithmetics. In: LCTES, pp. 54–63. ACM (2006)
21.
Zurück zum Zitat 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). doi:10.1007/11609773_23 CrossRef 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). doi:10.​1007/​11609773_​23 CrossRef
22.
23.
Zurück zum Zitat Yakobowski, B.: Fast whole-program verification using on-the-fly summarization. In: Workshop on Tools for Automatic Program Analysis (2015) Yakobowski, B.: Fast whole-program verification using on-the-fly summarization. In: Workshop on Tools for Automatic Program Analysis (2015)
Metadaten
Titel
Structuring Abstract Interpreters Through State and Value Abstractions
verfasst von
Sandrine Blazy
David Bühler
Boris Yakobowski
Copyright-Jahr
2017
DOI
https://doi.org/10.1007/978-3-319-52234-0_7