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.5. Lisp parallèle : Symmetric Lisp
5.3.55.1. Termes
5.3.55.2. Manipulation d'environnement
5.3.55.3. Application
5.3.55.4. Les plambda-expressions
5.3.55.5. Application partielle
5.3.55.6. Environnements ouverts
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

Lisp parallèle : Symmetric Lisp

Références : sur le langage Symmetric Lisp [GJL 87a] [GJL 87c].

De même que dans Scheme les fonctions sont des objets de première classe, en Symmetric Lisp les environnements sont des objets de première classe.

Note : les objets de première classe

La notion d'objet de première classe est une notion très informatique : elle caractérise les objets manipulés par un langage de programmation qui peuvent être : affectés, passés en paramètre d'une fonction, retournés par une fonction, ... Par exemple en Pascal, les entiers sont de première classe, mais non les pointeurs (ils ne peuvent pas être retournés par une fonction).

Au sens strict du terme, dans tous les langages Lisp une fonction est un objet de première classe – grâce entre autre à la fonction eval. Cependant Scheme offre en plus un modèle d'interprétation cohérent : un appel de fonction réalise toujours le même calcul quel que soit le point de programme d'où l'on appelle cette fonction. Pour ce faire, Scheme définit pour chaque fonction un unique contexte d'évaluation : ce contexte correspond très précisément au contexte lexical de définition de la fonction.

On n'a donc plus ici les deux types d'interprétation : Ienv (environnement) et Irep (représentation), puisqu'une valeur peut servir à modifier l'environnement d'évaluation. On ne distingue donc plus pour une valeur les champs env et rep, et on appelle dans la suite une valeur indifféremment env ou rep selon le sens intuitif qu'on lui attache.

1. Termes

2. Manipulation d'environnement

3. Application

4. Les plambda-expressions

5. Application partielle

6. Environnements ouverts