Implémentation d'un debugger Prolog

  • Emmanuel van Rossum

Student thesis: Master typesMaster en sciences informatiques

Résumé

Le présent mémoire est le résultat d'un stage effectué à l'ECRC (European Computer-Industry Research Center) à Munich où j'ai implémenté un debugger sur un Prolog compilé existant : SEPIA (Standard ECRC Prolog Integrating Advanced features). Un debugger (outil d'aide à la correction de programmes) doit s'attacher à décrire de la manière la plus précise possible l'exécution d'un programme ou d'une partie de programme afin de faciliter le travail de l'utilisateur dans sa tâche de localisation et de compréhension des erreurs que contient son programme. Il est, dans ces conditions, préférable qu'un debugger trace l'exécution d'un programme dans un modèle indépendant d'une implémentation particulière de Prolog (et donc forcément de ses optimisations) mais néanmoins suffisamment précis, tenant compte par exemple de l'aspect procédural de ce langage. L'implémentation d'un tel debugger nécessite la résolution des problèmes dus au "gap" existant entre le modèle et l'implémentation de Prolog, ce "gap" est d'autant plus important que le système Prolog est optimisé. La section 1 décrit une implémentation minimum de Prolog ainsi que les optimisations les plus courantes; puis, décrit la machine abstraite de Warren [Warren 83] (adaptée à la compilation de Prolog). La section 2 décrit un modèle de trace procédural en partant du modèle créé par Byrd [Byrd 80]; puis étend celui-ci. Quelques outils de trace sont aussi introduits. Enfin, la section 3 décrit les problèmes et les solutions qui interviennent dans la mise en œuvre d'un debugger dans le cadre d'une machine abstraite de Warren.
la date de réponse1989
langue originaleFrançais
L'institution diplômante
  • Universite de Namur
SuperviseurBaudouin LE CHARLIER (Promoteur)

Contient cette citation

'