Inférer et compiler la terminaison des programmes logiques avec contraintes
Auteur / Autrice : | Sébastien Hoarau |
Direction : | Henri Ralambondrainy |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance en 1999 |
Etablissement(s) : | La Réunion |
Mots clés
Résumé
Face à un programme logique (avec contraintes) et un système Prolog, il est légitime de se demander si la requête qu'on se propose de soumettre va terminer. Actuellement, il existe des systèmes capables de répondre à cette question. Les plus connus travaillent avec des Prolog standards et la règle gauche-droite pour la sélection des littéraux. La propriété obtenue est celle de terminaison gauche. Depuis quelques années, on est même capable d'inférer-et pas seulement de tester-des clases de requêtes qui vérifient la propriété de terminaison gauche. Cette thèse va plus loin en présentant une méthode automatique qui infère, non seulement des classes de requêtes sûres pour la terminaison gauche, mais aussi des classes de requêtes qui, à première vue, ne le sont pas. Elles peuvent toutefois le devenir si on considère un nouveau programme. Ce dernier est obtenu en réordonnant les atomes dans le corps des clauses du programme initial. Comme l'inférence, la transformation (ou compilation) est automatique. D'un point de vue théorique, le système repose sur une nouvelle classe de terminaison universelle ainsi que sur une méthode générique d'analyse statique.