Participants : Zine-El-Abidine Benaissa, Daniel Briaud,Pierre Lescanne,Jocelyne Rouyer, Joseph Rouyer
Mots clefs : lambda-calcul, programmation fonctionnelle
Le lambda-calcul utilise la substitution comme un mécanisme
fondamental, et comme le notait déjà Curry dans les années 50, la
formalisation se fait en dehors de la théorie elle-même, dans ce
que Curry appelle l' épi-théorie. Aussi bien pour des
raisons esthétiques que pour expliquer et définir proprement des
implantations efficaces, les calculs de substitutions explicites
visent à internaliser dans le lambda-calcul les
manipulations des substitutions ; ils proposent tous une règle
que est notée (B) et qui active la première étape de
-réduction en
introduisant explicitement une substitution que d'autres règles
éliminent. Une stratégie qui introduit une substitution et
l'élimine aussitôt simule la
-réduction classique ; mais il existe bien d'autres
stratégies plus ou moins paresseuses quant à l'élimination des
substitutions. La figure 1 donne les réductions que l'on
obtient dans le calcul
(prononcer lambda-upsilon) si on cherche a
réduire les termes
et
en indices de de
Bruijn. L'approche des substitutions explicites du projet EURéCA
est, pour paraphraser Curry, d'une extrême simplicité.
Elle consiste à minimiser les opérateurs utilisés en
n'introduisant que ceux qui sont nécessaires. Grâce à cela, les
calculs satisfont des propriétés bien agréables.

Figure 1: La réduction des termes
et