Reusing Caches and Invariants for Efficient and Sound Incremental Static Analysis

Mamy Razafintsialonina, David Bühler, Antoine Miné, Valentin Perrelle, Julien Signoles

Research output: Chapter in Book/Report/Conference proceedingConference contributionpeer-review

Abstract

Static analysis by means of abstract interpretation is a tool of choice for proving absence of some classes of errors, typically undefined behaviors in C code, in a sound way. However, static analysis tools are hardly integrated in CI/CD processes. One of the main reasons is that they are still time- and memory-expensive to apply after every single patch when developing a program. For solving this issue, incremental static analysis helps developers quickly obtain analysis results after making changes to a program. However, existing approaches are often not guaranteed to be sound, limited to specific analyses, or tied to specific tools. This limits their generalizability and applicability in practice, especially for large and critical software. In this paper, we propose a generic, sound approach to incremental static analysis that is applicable to any abstract interpreter. Our approach leverages the similarity between two versions of a program to soundly reuse previously computed analysis results. We introduce novel methods for summarizing functions and reusing loop invariants. They significantly reduce the cost of reanalysis, while maintaining soundness and a high level of precision. We have formalized our approach, proved it sound, implemented it in Eva, the abstract interpreter of Frama-C, and evaluated it on a set of real-world commits of open-source programs.

Original languageEnglish
Title of host publication39th European Conference on Object-Oriented Programming, ECOOP 2025
EditorsJonathan Aldrich, Alexandra Silva
PublisherSchloss Dagstuhl- Leibniz-Zentrum fur Informatik GmbH, Dagstuhl Publishing
ISBN (Electronic)9783959773737
DOIs
Publication statusPublished - 25 Jun 2025
Externally publishedYes
Event39th European Conference on Object-Oriented Programming, ECOOP 2025 - Bergen, Norway
Duration: 30 Jun 20252 Jul 2025

Publication series

NameLeibniz International Proceedings in Informatics, LIPIcs
Volume333
ISSN (Print)1868-8969

Conference

Conference39th European Conference on Object-Oriented Programming, ECOOP 2025
Country/TerritoryNorway
CityBergen
Period30/06/252/07/25

Keywords

  • Abstract Interpretation
  • Incremental Analysis
  • Static Analysis

Fingerprint

Dive into the research topics of 'Reusing Caches and Invariants for Efficient and Sound Incremental Static Analysis'. Together they form a unique fingerprint.

Cite this