afficher >><< masquer ]
SAMPI - Editeur structuré
1. Le Problème et la Proposition
2. Le Langage Primitif de Représentation Textuelle
2.1. Présentation de la Syntaxe Concrète
2.2. Notations
2.3. Exemple de structuration des données
2.4. Exemple de structuration des traitements
2.5. Exemple de structurations connexes
3. Le Langage Complété pour la Structuration des Textes
3.1. Présentation de la Syntaxe Complétée
3.2. Etude quantitative de l'évolution des programmes
3.3. L'édition syntaxique
3.4. étude de cas : le langage LTR3 et l'atelier ENTREPRISE
4. L'Enrichissement du Langage par de Nouveaux Concepts
4.1. Présentation de la Syntaxe Abstraite
4.2. Les difficultés
4.3. Compléter la Syntaxe
5. La Formalisation des Solutions Techniques
5.1. L'évaluation fonctionnelle
5.2. La structuration par les objets
5.3. Modèle sémantique comparé de l'évaluateur
5.3.1. Notations
5.3.2. La fermeture lexicale : le langage Scheme
5.3.3. Les Lisps standards : LeLisp
5.3.4. L'évaluation retardées : « Moi aussi »
5.3.44.1. Termes
5.3.44.2. Application
5.3.44.3. Référence
5.3.44.4. Symétrie d'évaluation
5.3.5. Lisp parallèle : Symmetric Lisp
5.3.6. Glossaire
5.4. Comparaison critique
5.5. Construction de la Syntaxe Abstraite
6. Les Comparaisons avec d'autres Approches
7. Les Perspectives
8. Les Editeurs
8.0. brisé sur la barrière de la complexité (une fois de plus)
8.1. L'éditeur ligne : Manuel de l'utilisateur
8.2. L'éditeur page : Guide de l'utilisateur
9. Les Aspects d'Implantation
9.1. Contexte d'évaluation
9.2. La Syntaxe Abstraite : Manuel du concepteur
9.3. L'éditeur page : Guide de l'implanteur
Références
Rubrique Perl-Javascript

L'évaluation retardées : « Moi aussi »

Je présente ici le type d'évaluation que j'ai moi-même adopté.

1. Termes

2. Application

3. Référence

4. Symétrie d'évaluation

1. Termes

Définition

On commence par le plus simple, à savoir les définitions.

Ienv[env-0 (def x env rep)]
= ( x :→ Iλ[env-0 λ.rep] )

c'est-à-dire qu'une définition est "vue" comme une λ-expression quotée sans argument (en particulier l'environnement de définition env est ignoré).

Symbole

L'utilisation d'un symbole force son évaluation :

Irep[env-0 x]
   env-0: x :→ Iλ[env-lex λ.(env-x rep-x)]
     env-x* = Ienv[env-x*:env-0 env-x]
     rep-x* = Irep[env-x*::env-0 rep-x]
= rep-x*

(ici aussi l'évaluation parallèle est imparfaitement réalisée ; la difficulté est cependant d'un autre ordre, puisque les définitions ne sont pas évaluées – cf. ref).

On remarquera en particulier que l'environnement d'appel est utilisé à l'évaluation du symbole et que l'environnement de définition est ignoré (inconnu) : la recherche des identificateurs est dynamique.

λ-expression

De même qu'un symbole est vu comme une λ-expression quotée, une λ-expression est vue comme un symbole ; c'est-à-dire qu'il n'y a pas à proprement parler de λ-expression : la notion est implicite.