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.1.1. L'évaluation symbolique
5.1.11.1. Le problème initial
5.1.11.2. La structuration des textes
5.1.11.3. Les valeurs d'environnement
5.1.2. Le calcul symbolique
5.1.3. Résumé
5.2. La structuration par les objets
5.3. Modèle sémantique comparé de l'évaluateur
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 symbolique

1. Le problème initial

2. La structuration des textes

3. Les valeurs d'environnement

1. Le problème initial

Le problème initial s'est présenté selon trois aspects :

 (P1) 

on veut définir des textes « avec trous », c'est-à-dire des textes incomplets dont on remplit les « trous » par d'autres textes.

un texte à deux trous

 (P2) 

on veut pouvoir mettre en commun un texte entre plusieurs « utilisateurs », c'est-à-dire remplir plusieurs « trous » par le même texte.

deux textes à trou remplis avec un même troisième texte

 (P3) 

on veut pouvoir manipuler un « texte troué » de la même façon qu'un « texte complet ».
Ceci signifie que le lien entre un « trou » et le texte qui le remplit n'est pas un lien statique connu du texte « troué » mais s'apparente davantage à l'instanciation d'un paramètre formel d'un type générique.

deux instances d'un même texte troué

Pour satisfaire (P1), (P2) et (P3), on a choisi :

 (R1) 

de NOMMER les textes,

 (R2) 

d'EVALUER les textes.

 

NOMMER un texte signifie qu'on n'établit pas un lien statique entre un « trou » et sa valeur, mais qu'on construit un lien symbolique entre l'utilisation d'un symbole et sa définition.
EVALUER un texte signifie qu'on ne travaille pas sur l'objet qui définit un texte mais sur une valeur qui correspond à la forme évaluée de cet objet.

Analogie sous UNIX
A titre d'analogie, on peut comparer sous UNIX les deux types de liens suivants :

(a) 

Par la commande ln, on établit un lien statique entre deux fichiers :
ln fic1 fic2
donne au fichier fic1 les propriétés du fichier fic2.

Par exemple, la commande :
cat fic1
est sémantiquement équivalente à :
cat fic2

(b) 

En revanche, si l'on écrit dans le fichier fic1 le shell suivant :
echo fic2
on établit alors un lien symbolique entre fic1 et fic2.

Par exemple, la commande :
cat `fic1
est syntaxiquement équivalente à :
cat fic2

La différence qu'on observe entre (a) et (b) est la suivante : dans (a), on garantit de toujours "s'adresser" au même fichier, qui s'est appelé un jour fic2 ; dans (b), on "s'adresse" au fichier qui, à ce jour, s'appelle fic2.