Auteur / Autrice : | Sophie Pelhat |
Direction : | Yves Kodratoff |
Type : | Thèse de doctorat |
Discipline(s) : | Informatique |
Date : | Soutenance en 1987 |
Etablissement(s) : | Paris 11 |
Partenaire(s) de recherche : | autre partenaire : Université de Paris-Sud. Faculté des sciences d'Orsay (Essonne) |
Jury : | Président / Présidente : Marie-Claude Gaudel |
Examinateurs / Examinatrices : Yves Kodratoff, Max Dauchet, Mehmet Dincbas, Patrick Clément, Marie-Claude Gaudel | |
Rapporteurs / Rapporteuses : Max Dauchet |
Mots clés
Mots clés contrôlés
Résumé
La double sémantique, déclarative et procédurale, de PROLOG lui permet de tenir une place de choix dans le domaine de l'Intelligence Artificielle. Cependant la puissance d'expression de ce langage peut entraîner des effets non désirés et incontrôlés par le programmeur dont une conséquence fréquente est le bouclage de l'interprète sur des programmes récursifs. Nous proposons un environnement adapté dont l'objectif est de prévoir le comportement d'un programme. C'est un système d'analyse et de contrôle des programmes récursifs composé de deux phases. La première correspond à une analyse statique des programmes: on construit les schémas des cycles existants sur les clauses dont l'activation provoque le bouclage de l'interprète. La seconde phase est l'évaluation dynamique des programmes: son rôle premier est d'indiquer les contextes d'appels dont on est certain que l'évaluation termine. Dans les autres cas le système présente les schémas des cycles activés sur le programme qui peuvent conduire à des boucles. Il fournit alors des renseignements précis sur ces boucles potentielles. D'une part, il indique la structure de la boucle, c'est-à-dire l'ensemble des clauses qui composent le cycle activé. D'autre part, il précise l'origine de la boucle: si elle est créée par une instantiation spécifique d'un littéral récursif ou bien si elle est liée à la sémantique des clauses. Enfin, il informe l'utilisateur des conséquences possibles de la boucle, à savoir si elle produit un ensemble fini ou infini de solutions. De plus, des méthodes de traitement adaptées à la nature des boucles détectées sont proposées interactivement à l'utilisateur. Une méthode de généralisation, appelée méthode de généralisation des données, permet d'extraire, de l'environnement dans lequel le bouclage est activé, les informations qui sont significatives pour ce bouclage.