Skip to main content

2021 | OriginalPaper | Buchkapitel

Runtime Abstract Interpretation for Numerical Accuracy and Robustness

verfasst von : Franck Védrine, Maxime Jacquemin, Nikolai Kosmatov, Julien Signoles

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

Verification of numerical accuracy properties in modern software remains an important and challenging task. One of its difficulties is related to unstable tests, where the execution can take different branches for real and floating-point numbers. This paper presents a new verification technique for numerical properties, named Runtime Abstract Interpretation (RAI), that, given an annotated source code, embeds into it an abstract analyzer in order to analyze the program behavior at runtime. RAI is a hybrid technique combining abstract interpretation and runtime verification that aims at being sound as the former while taking benefit from the concrete run to gain greater precision from the latter when necessary. It solves the problem of unstable tests by surrounding an unstable test by two carefully defined program points, forming a so-called split-merge section, for which it separately analyzes different executions and merges the computed domains at the end of the section. Our implementation of this technique in a toolchain called FLDBox relies on two basic tools, FLDCompiler, that performs a source-to-source transformation of the given program and defines the split-merge sections, and an instrumentation library FLDLib that provides necessary primitives to explore relevant (partial) executions of each section and propagate accuracy properties. Initial experiments show that the proposed technique can efficiently and soundly analyze numerical accuracy for industrial programs on thin numerical scenarios.

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!

Literatur
3.
Zurück zum Zitat Benz, F., Hildebrandt, A., Hack, S.: A dynamic program analysis to find floating-point accuracy problems. In: Conference on Programming Language Design and Implementation (PLDI 2012) (2012) Benz, F., Hildebrandt, A., Hack, S.: A dynamic program analysis to find floating-point accuracy problems. In: Conference on Programming Language Design and Implementation (PLDI 2012) (2012)
5.
Zurück zum Zitat Boulanger, J.: Static Analysis of Software: The Abstract Interpretation (2011) Boulanger, J.: Static Analysis of Software: The Abstract Interpretation (2011)
7.
Zurück zum Zitat Cadar, C., Sen, K.: Symbolic execution for software testing: three decades later. Commun. ACM (2013) Cadar, C., Sen, K.: Symbolic execution for software testing: three decades later. Commun. ACM (2013)
8.
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: Symposium on Principles of Programming Languages (POPL 1977) (1977) Cousot, P., Cousot, R.: Abstract interpretation: a unified lattice model for static analysis of programs by construction or approximation of fixpoints. In: Symposium on Principles of Programming Languages (POPL 1977) (1977)
9.
Zurück zum Zitat Damouche, N., Martel, M.: Salsa: An automatic tool to improve the numerical accuracy of programs. In: Automated Formal Methods, AFM@NFM (2017) Damouche, N., Martel, M.: Salsa: An automatic tool to improve the numerical accuracy of programs. In: Automated Formal Methods, AFM@NFM (2017)
10.
Zurück zum Zitat Damouche, N., Martel, M., Panchekha, P., Qiu, J., Sanchez-Stern, A., Tatlock, Z.: Toward a standard benchmark format and suite for floating-point analysis. In: NSV 2016 (2016) Damouche, N., Martel, M., Panchekha, P., Qiu, J., Sanchez-Stern, A., Tatlock, Z.: Toward a standard benchmark format and suite for floating-point analysis. In: NSV 2016 (2016)
12.
Zurück zum Zitat Darulova, E., Kuncak, V.: Trustworthy numerical computation in scala. In: The 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2011), part of SPLASH 2011, pp. 325–344. ACM (2011). https://doi.org/10.1145/2048066.2048094 Darulova, E., Kuncak, V.: Trustworthy numerical computation in scala. In: The 26th Annual ACM SIGPLAN Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA 2011), part of SPLASH 2011, pp. 325–344. ACM (2011). https://​doi.​org/​10.​1145/​2048066.​2048094
13.
Zurück zum Zitat Darulova, E., Kuncak, V.: Sound compilation of reals. In: Symposium on Principles of Programming Languages (POPL) (2014) Darulova, E., Kuncak, V.: Sound compilation of reals. In: Symposium on Principles of Programming Languages (POPL) (2014)
14.
Zurück zum Zitat Darulova, E., Kuncak, V.: Towards a compiler for reals. ACM Trans. Program. Lang. Syst (2017) Darulova, E., Kuncak, V.: Towards a compiler for reals. ACM Trans. Program. Lang. Syst (2017)
16.
Zurück zum Zitat Delahaye, M., Kosmatov, N., Signoles, J.: Common specification language for static and dynamic analysis of C programs. In: The 28th Annual ACM Symposium on Applied Computing, Software Verification and Testing Track (SAC-SVT 2013), pp. 1230–1235. ACM (2013). https://doi.org/10.1145/2480362.2480593 Delahaye, M., Kosmatov, N., Signoles, J.: Common specification language for static and dynamic analysis of C programs. In: The 28th Annual ACM Symposium on Applied Computing, Software Verification and Testing Track (SAC-SVT 2013), pp. 1230–1235. ACM (2013). https://​doi.​org/​10.​1145/​2480362.​2480593
18.
Zurück zum Zitat Falcone, Y., Havelund, K., Reger, G.: A tutorial on runtime verification. In: Engineering Dependable Software Systems. IOS Press (2013) Falcone, Y., Havelund, K., Reger, G.: A tutorial on runtime verification. In: Engineering Dependable Software Systems. IOS Press (2013)
21.
Zurück zum Zitat Goubault, E., Putot, S.: Static analysis of finite precision computations. In: International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI) (2011) Goubault, E., Putot, S.: Static analysis of finite precision computations. In: International Conference on Verification, Model Checking, and Abstract Interpretation (VMCAI) (2011)
22.
Zurück zum Zitat Goubault, E., Putot, S.: Robustness analysis of finite precision implementations. In: Asian Symposium on Programming Languages and Systems (APLAS) (2013) Goubault, E., Putot, S.: Robustness analysis of finite precision implementations. In: Asian Symposium on Programming Languages and Systems (APLAS) (2013)
23.
Zurück zum Zitat Jézéquel, F., Chesneaux, J.M.: CADNA: a library for estimating round-off error propagation. Comput. Phys. Commun. (2008) Jézéquel, F., Chesneaux, J.M.: CADNA: a library for estimating round-off error propagation. Comput. Phys. Commun. (2008)
24.
Zurück zum Zitat Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-C: a software analysis perspective. Formal Aspects Comput. (2015) Kirchner, F., Kosmatov, N., Prevosto, V., Signoles, J., Yakobowski, B.: Frama-C: a software analysis perspective. Formal Aspects Comput. (2015)
28.
Zurück zum Zitat Monniaux, D.: The pitfalls of verifying floating-point computations. Trans. Program. Lang. Syst. (TOPLAS) (2008) Monniaux, D.: The pitfalls of verifying floating-point computations. Trans. Program. Lang. Syst. (TOPLAS) (2008)
31.
Zurück zum Zitat Nethercote, N., Seward, J.: Valgrind: A framework for heavyweight dynamic binary instrumentation. In: Conference on Programming Language Design and Implementation (PLDI) (2007) Nethercote, N., Seward, J.: Valgrind: A framework for heavyweight dynamic binary instrumentation. In: Conference on Programming Language Design and Implementation (PLDI) (2007)
33.
Zurück zum Zitat Sánchez, C., et al.: A survey of challenges for runtime verification from advanced application domains (Beyond software). Formal Methods Syst. Des. (2019) Sánchez, C., et al.: A survey of challenges for runtime verification from advanced application domains (Beyond software). Formal Methods Syst. Des. (2019)
37.
Zurück zum Zitat Signoles, J., Kosmatov, N., Vorobyov, K.: E-ACSL, a runtime verification tool for safety and security of C programs. Tool Paper. In: International Workshop on Competitions, Usability, Benchmarks, Evaluation, and Standardisation for Runtime Verification Tools (RV-CuBES) (2017) Signoles, J., Kosmatov, N., Vorobyov, K.: E-ACSL, a runtime verification tool for safety and security of C programs. Tool Paper. In: International Workshop on Competitions, Usability, Benchmarks, Evaluation, and Standardisation for Runtime Verification Tools (RV-CuBES) (2017)
39.
Zurück zum Zitat Titolo, L., Feliú, M.A., Moscato, M.M., Muñoz, C.A.: An abstract interpretation framework for the round-off error analysis of floating-point programs. In: Verification, Model Checking, and Abstract Interpretation - 19th International Conference, VMCAI 2018, Los Angeles, CA, USA, January 7–9, Proceedings (2018). https://doi.org/10.1007/978-3-319-73721-8_24 Titolo, L., Feliú, M.A., Moscato, M.M., Muñoz, C.A.: An abstract interpretation framework for the round-off error analysis of floating-point programs. In: Verification, Model Checking, and Abstract Interpretation - 19th International Conference, VMCAI 2018, Los Angeles, CA, USA, January 7–9, Proceedings (2018). https://​doi.​org/​10.​1007/​978-3-319-73721-8_​24
40.
Zurück zum Zitat Titolo, L., Moscato, M., Muñoz, C.A.: Automatic generation and verification of test-stable floating-point code. arXiv e-prints (2020) Titolo, L., Moscato, M., Muñoz, C.A.: Automatic generation and verification of test-stable floating-point code. arXiv e-prints (2020)
Metadaten
Titel
Runtime Abstract Interpretation for Numerical Accuracy and Robustness
verfasst von
Franck Védrine
Maxime Jacquemin
Nikolai Kosmatov
Julien Signoles
Copyright-Jahr
2021
DOI
https://doi.org/10.1007/978-3-030-67067-2_12

Premium Partner