Thèse soutenue

Vérification des résultats de l'inférence de types du langage OCaml

FR  |  
EN
Auteur / Autrice : Pierrick Couderc
Direction : Michel Mauny
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 23/10/2018
Etablissement(s) : Université Paris-Saclay (ComUE)
Ecole(s) doctorale(s) : École doctorale Sciences et technologies de l'information et de la communication (Orsay, Essonne ; 2015-....)
Partenaire(s) de recherche : Laboratoire : École nationale supérieure de techniques avancées (Palaiseau). Unité d'Informatique et d'Ingénierie des Systèmes - École nationale supérieure de techniques avancées (Palaiseau). Unité d'Informatique et d'Ingénierie des Systèmes
établissement opérateur d'inscription : École nationale supérieure de techniques avancées (Palaiseau, Essonne ; 1741 -....)
Jury : Président / Présidente : Catherine Dubois
Examinateurs / Examinatrices : Fabrice Le Fessant, Sylvain Conchon, Alain Frisch
Rapporteurs / Rapporteuses : Emmanuel Chailloux, Jacques Garrigue

Mots clés

FR  |  
EN

Mots clés contrôlés

Résumé

FR  |  
EN

OCaml est un langage fonctionnel statiquement typé, qui génère après inférence de types un arbre de syntaxe abstraite dans lequel chacun des noeuds est annoté avec un ensemble d’informations issues de cette inférence. Ces informations, en particulier les types inférés, constituent une preuve de typage de l’expression annotée.Ce manuscrit de thèse s’intéresse à la vérification de ces arbres annotés en les considérant comme des preuves de typages du programme, et décrit un ensemble de règles permettant d’en vérifier la cohérence. La formalisation de ces règles de vérification de preuves de types peut être vue comme une représensation du système de types du langage étudié.Cette thèse présente plusieurs aspects de la vérification d’arbres de syntaxe annotés. Le premier cas étudié est la formalisation d’un dérivé de MiniML où toutes les expressions sont annotées de manière théoriquement parfaite, et montre qu’il est possible d’écrire des règles de vérification de manière algorithmique, rendant directe la preuve de correction vis-à-vis de la spécification. La seconde partie s’intéresse à la formalisation de règles de vérification pour un sous-ensemble du premier langage intermédiaire d’OCaml, le TypedTree, accompagné d’un vérificateur implémentant ces règles. Ces règles constituent alors une représentation du système de types d’OCaml, document jusqu’alors inexistant, au mieux disséminé dans diverses publications.