Thèse soutenue

Programmation vérifiée à l'intersection des types dépendants et de l'analyse statique
FR  |  
EN
Accès à la thèse
Auteur / Autrice : Lucas Franceschino
Direction : Jean-Pierre TalpinDavid Pichardie
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 10/12/2021
Etablissement(s) : Rennes, École normale supérieure
Ecole(s) doctorale(s) : École doctorale Mathématiques et sciences et technologies de l'information et de la communication (Rennes)
Partenaire(s) de recherche : Laboratoire : Université de Rennes - École normale supérieure - Rennes - Inria Rennes – Bretagne Atlantique - Tim, Events and Architectures
Jury : Président / Présidente : Sandrine Blazy
Examinateurs / Examinatrices : Karthikeyan Bhargavan, Pierre-Yves Strub, Niki Vazou
Rapporteurs / Rapporteuses : Stephan Merz, Nikhil Swamy

Mots clés

FR  |  
EN

Résumé

FR  |  
EN

La programmation dirigée par les types ou orientée preuves consiste à écrire et prouver des programmes simultanément. Elle émerge grâce aux langages équipés de types dépendants, et permet une formidable qualité logicielle, au prix de temps passé à écrire des preuves. Inversement, l’analyse statique vise à inférer des propriétés en analysant des programmes existants.Cette thèse étudie la façon dont les systèmes avancés de typage et l’analyse statique peuvent coopérer. Quant à l’analyse statique, nous nous focalisons principalement sur une théorie correcte d’approximation de programmes : l’interprétation abstraite. Notre première contribution démontre l’efficacité de la programmation orientée preuves (avec le langage F*) pour écrire des interpréteurs abstraits formellement vérifiés. De tels interpréteurs existent, mais requièrent une expertise avec les assistants de preuves et en interprétation abstraite, les rendant particulièrement inaccessibles. Notre approche ne nécessite que très peu de preuves manuelles (un ordre de magnitude inférieur en comparaison avec les travaux similaires) : notre implémentation est particulièrement concise et accessible. Nous avons ensuite étudié l’hybridation d’interpréteurs abstraits et de monades de pré-condition la plus faible (WP). Notre approche instrumente des interpréteurs abstraits en des transformeurs de monades de WP. Enfin, nous avons travaillé sur les bénéfices des types dépendants et du système d’effets de F* pour le contrôle de flux d’information (IFC). Nous présentons une librairie permettant de vérifier des politiques d’IFC de manière flexible, entre statique et dynamique.