Compiling with Abstract Interpretation (with appendices) - Archive ouverte HAL Accéder directement au contenu
Rapport Année : 2024

Compiling with Abstract Interpretation (with appendices)

Dorian Lesbre
  • Fonction : Auteur
Matthieu Lemerre

Résumé

Rewriting and static analyses are mutually beneficial techniques: program transformations change the intensional aspects of the program, and can thus improve analysis precision, while some efficient transformations are enabled by specific knowledge of some program invariants. Despite the strong interaction between these techniques, they are usually considered distinct. In this paper, we demonstrate that we can turn abstract interpreters into compilers, using a simple free algebra over the standard signature of abstract domains. Functor domains correspond to compiler passes, for which soundness is translated to a proof of forward simulation, and completeness to backward simulation. We achieve translation to SSA using an abstract domain with a non-standard SSA signature. Incorporating such an SSA translation to an abstract interpreter improves its precision; in particular we show that an SSA-based non-relational domain is always more precise than a standard non-relational domain for similar time and memory complexity. Moreover, such a domain allows recovering from precision losses that occur when analyzing low-level machine code instead of source code. These results help implement analyses or compilation passes where symbolic and semantic methods simultaneously refine each other, and improves precision when compared to doing the passes in sequence.
Fichier principal
Vignette du fichier
compiling-with-abstract-interpretation-with-appendices.pdf (834.53 Ko) Télécharger le fichier
Origine : Fichiers produits par l'(les) auteur(s)

Dates et versions

hal-04535159 , version 1 (06-04-2024)
hal-04535159 , version 2 (11-04-2024)

Licence

Paternité - Partage selon les Conditions Initiales

Identifiants

  • HAL Id : hal-04535159 , version 2

Citer

Dorian Lesbre, Matthieu Lemerre. Compiling with Abstract Interpretation (with appendices). CEA LIST. 2024. ⟨hal-04535159v2⟩
0 Consultations
0 Téléchargements

Partager

Gmail Facebook X LinkedIn More