previous up next top index
Précédent : La mise en oeuvre de Remonter : Les langages de programmation logique Suivant : Applications de Prolog


Typage de tex2html_wrap_inline420 Prolog

Participants : Pascale Louvet, Olivier Ridoux

tex2html_wrap_inline420 Prolog est un des premiers langages de programmation logique qui soit à la fois typé et qui ait fait l'objet d'une implantation et d'une utilisation en vraie grandeur. Le résultat est une connaissance expérimentale des avantages et des inconvénients du système de types le plus souvent proposé pour la programmation logique. Ce système peut être vu comme une transposition de celui de ML, avec des adaptations rendues nécessaires par la différence de structure des programmes. En première approximation, un prédicat à plusieurs têtes, au lieu d'une seule pour une fonction ML, et un programme est fait d'un unique let qui introduit plusieurs définitions mutuellement récursives, alors que les let sont librement imbriqués en ML.

L'expérience de l'implantation de tex2html_wrap_inline420 Prolog et de son utilisation, surtout dans un contexte de méta-programmation, montre que ce style de typage est inadapté. La racine du problème vient du polymorphisme générique, à la ML. Nous avons trouvé des solutions à ce problème en adoptant une discipline de types polymorphes paramétriques. Nous avons défini une variante de tex2html_wrap_inline420 Prolog, appelée tex2html_wrap_inline420 2Prolog, qui permet de passer des types en paramètres des prédicats et des fonctions, de quantifier des variables de type, de les abstraire et de conditionner l'exécution d'un but par la vérification d'un type. La syntaxe et la sémantique de ce langage ont été formalisées [16, 3].

Les notations de types rendent la nouvelle syntaxe difficile à manipuler. Nous avons donc étudié la question de la reconstruction de ces notations. Ce travail a abouti à un système formel de complétion de types qui permet de retrouver la syntaxe de tex2html_wrap_inline420 Prolog pour tous les programmes tex2html_wrap_inline420 2Prolog qui sont compatibles avec tex2html_wrap_inline420 Prolog\ et qui, bien sûr, peut exiger quelques notations de types pour les autres.

Le système de vérification et de complétion des types de tex2html_wrap_inline420 2Prolog a été implémenté. Le schéma d'exécution de tex2html_wrap_inline420 2Prolog ne l'a pas encore été.



previous up next top index Précédent : La mise en oeuvre de Suivant : Applications de Prolog Remonter : Les langages de programmation logique