previous up next top index
Précédent : Unification d'ordre supérieur Remonter : Structures fondamentales de calcul Suivant : Modèles du -calcul


tex2html_wrap_inline361 -calcul et compilation des langages fonctionnels

Participant : Philippe Audebaud

Le tex2html_wrap_inline361 -calcul de M. Parigot de l'université de Paris 7 est un bon candidat pour étendre l'isomorphisme de Curry-Howard à la logique classique. L'étude menée sur ses aspects calculatoires a permis de montrer, via une extension aisée du calcul, qu'il intègre également les continuations comme objets de première classe.

A ce stade, Ph. Audebaud a obtenu un calcul partageant les mêmes ``bonnes'' propriétés du tex2html_wrap_inline353 -calcul pur : confluence, finitude des développements, etc. De plus, une partie stable de ce calcul correspond au code naturellement compilé vers la machine de Krivine (par exemple). Il est ainsi possible d'exprimer et de vérifier dans le même temps certaines simplifications de programmes réalisées lors de la compilation, ainsi que la correction de la machine abstraite qui exécute le code compilé.

Une seconde extension du calcul, inspirée de travaux de Danvy, Filinski et Moggi, a débouché sur un calcul offrant la possibilité de prendre en compte diverses stratégies d'évaluation rencontrées dans les langages fonctionnels. De tout cela, Ph. Audebaud a pu tirer un modèle mathématique adapté pour la compilation et l'évaluation de programmes composant le noyau fonctionnel de Caml.

A ce point de l'étude, il est déjà possible d'écrire des coroutines par exemple, car les affectations ne sont pas nécessaires. Cependant, le traitement des exceptions, pas plus que celui des références n'est possible. Une dernière extension a donc été étudiée, qui a débouché sur un modèle, c'est-à-dire un calcul, permettant la représentation de programmes Caml impératifs et/ou utilisant des exceptions. Cette partie est basée sur des idées originales de Felleisen relatives aux références et aux prompts.

Un prototype a été réalisé qui met toutes ces idées en pratique. L'ensemble de l'étude a porté à la fois sur les termes concrets et sur une représentation avec substitutions explicites basée sur le lambda-sigma-lift calcul de Abadi, Cardelli, Curien, Lévy et Hardin. L'étude du typage, exclue de l'approche précédente, est maintenant abordée.



previous up next top index Précédent : Unification d'ordre supérieur Suivant : Modèles du -calcul Remonter : Structures fondamentales de calcul