Best viewed in 24pt and full-screen
next up previous contents
Next: La recherche en programmation Up: Mise en uvre et Previous: Mise en uvre et

Introduction

Les résultats présentés dans ce mémoire portent sur plusieurs aspects d'un langage de programmation, tex2html_wrap_inline56836Prolog, qui a été défini vers 1986 par Dale Miller* à l'université de Pennsylvanie (UPenn). Ils ont été obtenus au cours d'environ huit années, deux thèses, quelques stages (tex2html_wrap_inline51278, Magistère, ingéniorat), l'implémentation d'un système tex2html_wrap_inline56836Prolog complet et plusieurs applications des recherches d'autres auteurs. Nous les présentons ici plutôt informellement, en les faisant précéder d'une discussion sur la recherche en langage de programmation et d'une présentation de tex2html_wrap_inline56836Prolog. Nous éludons le plus possible les travaux précédant cette période (gestion de mémoire, tex2html_wrap_inline52106*), même s'ils ont servi de «marche d'approche» aux travaux présentés ici.

Ces travaux ont donc porté sur un langage de programmation (implémentation, application, extension), et les utilisateurs de notre système ont trouvé des réponses à certains de leurs problèmes dans ce langage de programmation ou dans d'autres langages qu'il était aisé de mettre en tex2html_wrap52064uvre en tex2html_wrap_inline56836Prolog. Cette manière de proposer (ou trouver) des réponses linguistiques aux questions posées par l'exploration des applications de l'informatique s'oppose à un point de vue plus dénotationnel qui montre que la plupart des langages de programmation peuvent exprimer les mêmes fonctions. Nous défendrons le point de vue linguistique dans un essai sur la recherche en programmation.

Le point de vue linguistique conduit à trouver des réponses dans un langage existant ou à en inventer un sur mesure. Dans le dernier cas, on ne souhaite pas toujours le mettre en tex2html_wrap52064uvre de la manière lourde et analytique des compilateurs et interpréteurs traditionnels. Dans bien des cas, le langage inventé est une variante d'un langage existant et le passage du nouveau à l'ancien se conçoit à peu de frais, au moins conceptuellement. On préférera donc une mise en tex2html_wrap52064uvre légère qui ne s'occupe que des différences avec le langage d'origine. La technique de la métaprogrammation permet cette approche, mais exige des capacités particulières du langage de métaprogrammation. Nous montrons dans un autre essai comment tex2html_wrap_inline56836Prolog peut être considéré comme un langage de métaprogrammation.

Le langage tex2html_wrap_inline56836Prolog consiste en une combinaison originale de traits déja présents dans des langages de programmation appartenant à des familles distinctes et de traits complètement nouveaux. La question de son implémentation se pose donc immédiatement. Nous y avons répondu en proposant une architecture de système tex2html_wrap_inline56836Prolog, en exhibant certains aspects qui sont cruciaux pour l'efficacité de l'exécution et en proposant des stratégies pour les implémenter. Nous présentons une sélection de ces aspects dans un essai sur l'implémentation.

Nous avons eu un retour de l'utilisation de notre système par nous-même et par des utilisateurs plus ou moins distants. En effet, nous sommes les utilisateurs de notre propre système d'abord parce qu'il s'agit d'un autocompilateur (un compilateur de tex2html_wrap_inline56836Prolog écrit en tex2html_wrap_inline56836Prolog), et aussi parce nous avons exploré les relations entre tex2html_wrap_inline56836Prolog et les grammaires formelles. Un essai décrit ce travail sur les grammaires formelles et un autre décrit les applications entreprises par d'autres utilisateurs.

Ce retour d'expérience nous a fait essentiellement conclure que la discipline de typage de tex2html_wrap_inline56836Prolog n'était pas satisfaisante. Nous avons donc proposé une discipline nouvelle en programmation logique qui s'applique aussi bien à Prolog qu'à tex2html_wrap_inline56836Prolog, et qui résout les problèmes posés. Nous décrivons ce travail dans un autre essai qui nous conduit directement au dernier essai sur les prospectives car cette nouvelle discipline de typage n'a pas encore été implémentée. Nous y décrivons aussi d'autres travaux qui nous ont été inspirés par ces années de recherche, que nous n'avons jamais entrepris, mais que nous ne désespérons pas d'entreprendre ou de voir entreprendre.

Nous présentons ces essais dans l'ordre de cette introduction. Il correspond à peu près au déroulement du temps, et va du plus général au plus particulier avec un retour aux idées générales dans la prospective.


next up previous contents
Next: La recherche en programmation Up: Mise en uvre et Previous: Mise en uvre et

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