Thèse en cours

Analyse statique par interprétation abstraite de programmes concurrents manipulant des structures de données complexes

FR  |  
EN
Auteur / Autrice : Valentin Barbazo
Direction : Xavier Rival
Type : Projet de thèse
Discipline(s) : Informatique
Date : Inscription en doctorat le 01/09/2023
Etablissement(s) : Université Paris sciences et lettres
Ecole(s) doctorale(s) : École doctorale Sciences mathématiques de Paris centre (Paris ; 2000-....)
Partenaire(s) de recherche : Laboratoire : DIENS - Département d'informatique de l'École normale supérieure
Equipe de recherche : ANTIQUE
établissement opérateur d'inscription : École normale supérieure (Paris ; 1985-....)

Résumé

FR  |  
EN

Avec la complexité croissante des mécanismes mis en jeu dans les logiciels que nous utilisons au quotidien et auxquels nous confions nos données personnelles, le développement et l'automatisation de méthodes de vérification de programmes constituent un enjeu majeur. Les méthodes d'analyse statique permettent de prouver des propriétés pour toutes les exécutions d'un programme cible uniquement à partir de son code source. L'interprétation abstraite fournit un cadre théorique permettant de réaliser de telles analyses, correctes par construction, en représentant les états du programme dans un domaine abstrait et en raisonnant sur des propriétés dans ce domaine. La logique de séparation a démontré son utilité pour abstraire des structures de données complexes (telles que des listes ou des arbres) manipulées par des programmes séquentiels. Cependant, la programmation concurrente complexifie fortement tout raisonnement sur les propriétés et les états des programmes. Notre recherche a donc pour but de développer un cadre théorique pour l'analyse statique de programmes parallèles manipulant des structures de données complexes. Nous nous appuyons sur les concepts de logique de séparation concurrente et de sémantique d'interférences afin de construire des abstractions permettant de décrire efficacement ces structures de données ainsi que les relations entre différents threads. Afin de valider la pertinence des choix théoriques et de s'assurer que chaque abstraction possède une représentation machine efficace, nous implémentons en parallèle un outil d'analyse statique, et nous évaluerons les résultats produits par celui-ci sur plusieurs familles de programmes cible.