Résolution de contraintes sur les flottants dédiée à la vérification de programmes
Auteur / Autrice : | Mohammed Belaid |
Direction : | Michel Rueher, Claude Michel |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance le 04/12/2013 |
Etablissement(s) : | Nice |
Ecole(s) doctorale(s) : | École doctorale Sciences et technologies de l'information et de la communication (Nice ; 1992-....) |
Partenaire(s) de recherche : | Laboratoire : Laboratoire Informatique, signaux et systèmes (Sophia Antipolis, Alpes-Maritimes) |
Jury : | Examinateurs / Examinatrices : Michel Rueher, Claude Michel, Roberto Bagnara, Yves Deville, Éric Goubault, Arnaud Gotlieb |
Mots clés
Résumé
La vérification de programmes avec des calculs sur les nombres à virgule flottante est une étape très importante dans le développement de logiciels critiques. Les calculs sur les nombres flottants sont généralement imprécis, et peuvent dans certains cas diverger par rapport au résultat attendu sur les nombres réels. L’objectif de cette thèse est de concevoir un solveur de contraintes sur les nombres à virgule flottante dédié à la vérification de programmes. Nous présentons dans ce manuscrit une nouvelle méthode de résolution de contraintes sur les flottants. Cette méthode se base principalement sur la sur-approximation des contraintes sur les flottants par des contraintes sur les réels. Cette sur-approximation doit être conservative des solutions sur les flottants. Les contraintes obtenues sont ensuite résolues par un solveur de contraintes sur les réels. Nous avons proposé un algorithme de filtrage des domaines sur les flottants basé sur le concept de la sur-approximation qui utilise des techniques de programmation linéaire. Nous avons aussi proposé une méthode de recherche de solutions basée sur des heuristiques. Cette méthode offre aussi la possibilité de comparer le comportement des programmes par rapport à une spécification sur les réels. Ces méthodes ont été implémentées et expérimentées sur un ensemble de programmes avec du calcul sur les nombres flottants.