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.33.1. Termes
5.3.33.2. Application
5.3.4. L'évaluation retardées : « Moi aussi »
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

Les Lisps standards : LeLisp

Références : sur le langage LeLisp [Manuel LeLisp V15.2], sur le langage Interlisp [TeM 81], sur le langage Common Lisp, qui mêle la fermeture lexicale et la liaison dynamique [Tou 88].

Dans un Lisp standard, l'évaluateur empile les environnements d'évaluation : la recherche d'un identificateur – un symbole – est alors dynamique (« dynamic scoping »). Ceci a deux conséquences importantes :

1. Termes

2. Application

2. Application

Application

L'application de f sur a :

Irep[env-0 (apply f a)]
     Irep[env-0 f] = Iλ[env-lex λu.(env-f rep-f)]
     Irep[env-0 a] = a
= Irep[env-f0:(u:→a):env-lex rep-f]
     où env-f0 = Irep[(u:→a):env-lex env-f]

(l'évaluation d'un environnement est simultanée, avec la variante séquentielle).

En définitive, une λ-expression est quotée, en ce sens que l'environnement lexical de définition est ignoré à l'application – ou plus justement il est inconnu. On a alors la petite variante dans les Lisps standards :
- ceux qui refusent les λ-expressions non quotées,
- et ceux qui les acceptent, et les évaluent identiquement à elles-mêmes.

Evaluation

Irep[env-0 (quote x)] = x

Irep[env-0 (eval x)]
     Irep[env-0 x] = x
= Irep[env-0 x]

On a donc les quote et eval "purs" pour lesquels on n'indique pas l'environnement dans lequel on va évaluer – qui sera par défaut pris égal à celui dans lequel on est placé.