Best viewed in 24pt and full-screen
next up previous contents
Next: Un état des lieux Up: Mise en uvre et Previous: Manipulation de formules

Typage

Le typage en programmation logique est une question posée depuis longtemps [Bruynooghe 82] et qui n'a pas reçu de réponse qui fasse l'unanimité. Il existe deux points de vue que l'on qualifie l'un de descriptif* et l'autre de prescriptif*. Le point de vue descriptif considère que les types sont une abstraction des programmes. Il n'y a donc pas de programmes mal typés, seulement des programmes dont l'abstraction révèle qu'ils ne peuvent pas remplir la fonction escomptée. C'est donc un point de vue à la Curry*. Le point de vue prescriptif considère que les types sont une spécification partielle des programmes. Certains sont bien typés (satisfont la spécification partielle), d'autres ne le sont pas, mais on ne donne une sémantique qu'aux programmes bien typés. C'est ce point de vue à la Church* qui est adopté en tex2html_wrap_inline56836Prolog, et nous l'avons suivi, car nous trouvons qu'il s'accorde mieux avec des stratégies de développement de logiciel qui sont largement acceptées. En effet, une discipline de typage prescriptif est un compromis entre la richesse de la formalisation de la sémantique attendue des programmes et l'automatisation de sa vérification.

Notre travail d'implémentation de tex2html_wrap_inline56836Prolog nous a d'abord conduit à préciser la discipline de typage du langage car c'est un point où Miller et Nadathur son restés très imprécis [Brisset 92, Brisset et Ridoux 92b, Brisset et Ridoux 94]. Ensuite, l'utilisation de tex2html_wrap_inline52896 dans des applications concrètes a connu certaines difficultés dont nous avons conclu que le typage générique n'est pas bien adapté à la programmation logique. Nous avons étudié le problème avec Pascale Louvet et proposé une discipline de type paramétrique pour la programmation logique [Louvet et Ridoux 96] dont les détails sont décrits dans sa thèse [Louvet 96]. Nous avons appelé tex2html_wrap_inline53106Prolog cette variante paramétrique de tex2html_wrap_inline56836Prolog.

Nous sommes donc passés par deux points de vue différents sur le typage de tex2html_wrap_inline56836Prolog. Ceux-ci sont séparés par environ trois années et une expérimentation en vraie grandeur. Nous présentons un état des lieux à l'issue de l'implémentation de tex2html_wrap_inline52896, puis notre proposition de typage paramétrique.




next up previous contents
Next: Un état des lieux Up: Mise en uvre et Previous: Manipulation de formules

Olivier Ridoux
Mon Apr 27 11:10:23 MET DST 1998