Thèse soutenue

Vers la compilation vérifiée de Sea of Nodes : propriétés et raisonnement sémantiques

FR  |  
EN
Auteur / Autrice : Yon Fernández de Retana
Direction : David PichardieDelphine Demange
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 05/07/2018
Etablissement(s) : Rennes 1
Ecole(s) doctorale(s) : École doctorale Mathématiques et sciences et technologies de l'information et de la communication (Rennes)
Partenaire(s) de recherche : ComuE : Université Bretagne Loire (2016-2019)
Laboratoire : Institut de recherche en informatique et systèmes aléatoires (Rennes)

Mots clés

FR  |  
EN

Mots clés contrôlés

Mots clés libres

Résumé

FR  |  
EN

Les compilateurs optimisants pour les langages de programmation sont devenus des logiciels complexes et donc une source de bugs. Ceci peut être dangereux dans le contexte de systèmes critiques comme l'avionique ou la médecine. Cette thèse s'inscrit dans le cadre de la compilation vérifiée optimisante dont l'objectif est d'assurer l'absence de tels bugs. Plus précisément, nous étudions sémantiquement une représentation intermédiaire SSA (Single Static Assignment) particulière, Sea of Nodes, utilisée notamment dans le compilateur optimisant HotSpot pour Java. La propriété SSA a déjà été étudiée d'un point de vue sémantique sur des représentations simples sous forme de graphe de flot de contrôle, mais le sujet des dépendances entre instructions a seulement été effleuré depuis une perspective formelle. Cette thèse apporte une étude sémantique de transformations de programmes sous forme Sea of Nodes, intégrant la flexibilité en termes de dépendances de données entre instructions. En particulier, élimination de zero-checks redondants, propagation de constantes, retour au bloc de base séquentiel et destruction de SSA sont étudiés. Certains des sujets abordés, dont la formalisation d'une sémantique pour Sea of Nodes, sont accompagnés d'une vérification à l'aide de l'assistant de preuve Coq.