Thèse soutenue

Analyse des inférences récursives en PROLOG : système d'aide à la détection et au contrôle de boucles
FR  |  
EN
Accès à la thèse
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

FR

Mots clés contrôlés

Résumé

FR  |  
EN

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.