Analysis of Program Differences with Numerical Abstract Interpretation - Archive ouverte HAL
Communication Dans Un Congrès Année : 2019

Analysis of Program Differences with Numerical Abstract Interpretation

Résumé

We present work in progress on the static analysis of software patches. Given two syntactically close versions of a program, our analysis can infer a semantic difference, and prove that both programs compute the same outputs when run on the same inputs. Our method is based on abstract interpretation, and parametric in the choice of an abstract domain. At the moment, we focus on numeric properties only, on a toy language. Our method is able to deal with infinite-state programs and unbounded executions, but it is limited to comparing terminating executions, ignoring non terminating ones. We first present a novel concrete collecting semantics, expressing the behaviors of both programs at the same time. We then show how to leverage classic numeric abstract domains, such as polyhedra or octagons, to build an effective static analysis. We also introduce a novel numeric domain to bound differences between the values of the variables in the two programs, which has linear cost, and the right amount of relationality to express useful properties of software patches. We implemented a prototype and experimented on a few small examples from the literature. In future work, we will consider extensions to non purely numeric programs, towards the analysis of realistic patches.
Fichier principal
Vignette du fichier
perr19.pdf (216.06 Ko) Télécharger le fichier
Origine Fichiers produits par l'(les) auteur(s)
Loading...

Dates et versions

hal-02109517 , version 1 (24-04-2019)

Identifiants

  • HAL Id : hal-02109517 , version 1

Citer

David Delmas, Antoine Miné. Analysis of Program Differences with Numerical Abstract Interpretation. PERR 2019 - 3rd Workshop on Program Equivalence and Relational Reasoning, Apr 2019, Prague, Czech Republic. ⟨hal-02109517⟩
212 Consultations
102 Téléchargements

Partager

More