Static analysis of program portability by abstract interpretation - TEL - Thèses en ligne Accéder directement au contenu
Thèse Année : 2022

Static analysis of program portability by abstract interpretation

Analyse statique de la portabilité des programmes par interprétation abstraite

David Delmas

Résumé

Computer programs tend to be used much longer than expected at design time, and in a wider variety of environments. Adapting a software product for new usage may turn out to be difficult and costly. Ensuring the portability of programs is a major stake: it amounts to ensuring that their compilation and execution in a different environment will have small controlled impact on their semantics. The goal of this thesis is to develop a novel class of static analyses by abstract interpretation, allowing to verify portability properties of low-level C programs. Portability verification aims at proving the equivalence of two syntactically close versions of a program running in different environments. We first focus on the particular case of regression verification, which aims at proving the equivalence of two program versions running in the same environment. We propose a static analysis of software patches that is able to infer such equivalence properties, in particular in the context of low-level C programs such as those used in embedded software. Then we develop an approach to portability analysis of C programs that is designed as an extension of patch analysis. We focus on two portability properties, related to the representation of the computer memory specified by the ABI: portability against different representations of scalars (endianness), and against different memory layouts (offsets of scalar fields in C structs). We implemented a prototype static analyzer on top of the MOPSA platform, and experimented it on real-world open source and industrial software. It allows successful analyses of large, real-world avionics software up to one million lines of C.
Les logiciels tendent à être utilisés plus longtemps que prévu lors de leur conception, et dans une plus grande variété d'environnements. L'adaptation d'un logiciel à de nouvelles utilisations peut s'avérer difficile et coûteuse. Assurer la portabilité des programmes est un enjeu majeur : garantir que leur compilation et leur exécution dans un environnement différent a un effet maîtrisé sur leur sémantique. Cette thèse vise au développement d'analyses statiques par interprétation abstraite pour vérifier de telles propriétés de portabilité. Vérifier la portabilité consiste à prouver l'équivalence de deux versions syntaxiquement proches d'un programme, qui s'exécutent dans des environnements différents. Nous abordons d'abord le cas particulier de la vérification de non régression, qui vise à prouver l'équivalence de deux versions qui s'exécutent dans le même environnement. Nous proposons une analyse statique de patchs logiciels capable d'inférer de telles équivalences, notamment dans le contexte de programmes C de bas niveau comme ceux utilisés dans les systèmes embarqués. Puis nous construisons une analyse portabilité comme une extension de l'analyse de patchs. Notre analyse infère deux propriétés liées à la représentation de la mémoire : la portabilité vis-à-vis d'un changement de représentation des scalaires (endianisme), et vis-à-vis d'une organisation différente de la mémoire (offsets des champs scalaires des structures C). Nous avons implanté un analyseur statique prototype sur la plateforme MOPSA, l'avons expérimenté sur des logiciels open sources et industriels. Il analyse avec succès de grands logiciels avioniques (jusqu'à un million de lignes de C).
Fichier principal
Vignette du fichier
DELMAS_David_thesev2_2022.pdf (2.2 Mo) Télécharger le fichier
Origine : Version validée par le jury (STAR)

Dates et versions

tel-04028096 , version 1 (14-03-2023)

Identifiants

  • HAL Id : tel-04028096 , version 1

Citer

David Delmas. Static analysis of program portability by abstract interpretation. Software Engineering [cs.SE]. Sorbonne Université, 2022. English. ⟨NNT : 2022SORUS342⟩. ⟨tel-04028096⟩
89 Consultations
50 Téléchargements

Partager

Gmail Facebook X LinkedIn More