Thèse soutenue

Extension paramétrée de compilateur certifié pour la programmation parallèle

FR  |  
EN
Auteur / Autrice : Sylvain Dailler
Direction : Frédéric Loulergue
Type : Thèse de doctorat
Discipline(s) : Informatique
Date : Soutenance le 17/12/2015
Etablissement(s) : Orléans
Ecole(s) doctorale(s) : École doctorale Mathématiques, Informatique, Physique Théorique et Ingénierie des Systèmes (Centre-Val de Loire)
Partenaire(s) de recherche : Laboratoire : Laboratoire d'informatique fondamentale d'Orléans (Orléans ; 1987-....)
Jury : Président / Présidente : Jean-Michel Couvreur
Examinateurs / Examinatrices : Frédéric Loulergue, Jean-Michel Couvreur, Gaétan Hains, Ludovic Henrio, Frédéric Dabrowski, Pierre Courtieu
Rapporteurs / Rapporteuses : Gaétan Hains, Ludovic Henrio

Résumé

FR  |  
EN

Les applications informatiques sont de plus en plus présentes dans nos vies. Pour les applications critiques (médecine, transport, . . .), les conséquences d’une erreur informatique ont un coût inacceptable, que ce soit sur le plan humain ou financier. Une des méthodes pour éviter la présence d’erreurs dans les programmes est la vérification déductive. Celle-ci s’applique à des programmes écrits dans des langages de haut-niveau transformés, par des compilateurs, en programmes écrits en langage machine. Les compilateurs doivent être corrects pour ne pas propager d’erreurs au langage machine. Depuis 2005, les processeurs multi-coeurs se sont répandus dans l’ensemble des systèmes informatiques. Ces architectures nécessitent des compilateurs et des preuves de correction adaptées. Notre contribution est l’extension modulaire d’un compilateur vérifié pour un langage parallèle ciblant des architectures parallèles multi-coeurs. Les spécifications des langages (et leurs sémantiques opérationnelles) présents aux divers niveaux du compilateur ainsi que les preuves de la correction du compilateur sont paramétrées par des modules spécifiant des éléments de parallélisme tels qu’un modèle mémoire faible et des notions de synchronisation et d’ordonnancement entre processus légers. Ce travail ouvre la voie à la conception d’un compilateur certifié pour des langages parallèles de haut-niveau tels que les langages à squelettes algorithmiques.