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.1.1. Les intentions
2.1.2. Eléments du langage
2.1.22.1. Utilisation : use
2.1.22.2. Modularité : environnement des définitions (def)
2.1.22.3. Référence : ref
2.1.22.4. Environnement local
2.1.22.5. Résumé : 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.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

Eléments du langage

1. Utilisation : use

2. Modularité : environnement des définitions (def)

3. Référence : ref

4. Environnement local

5. Résumé : la syntaxe concrète

3. Référence : ref

Une référence à un texte ne s'intéresse pas à la représentation du texte nommé en référence mais à l'environnement de définition de ce texte :

Ce sera la seule différence – tout à fait d'importance cependant – entre utilisation (use) et référence (ref). En particulier, la recherche des textes ou la construction du contexte d'évaluation seront semblables dans les deux cas.

On remarquera qu'il s'agit très précisément de la dualité d'interprétation d'une classe d'un Langage Orienté Objet : une classe est un type instanciable (ici : par utilisation) ou un module exportant des propriétés (ici : par référence).

Par exemple :

                                    (use uti)
def uti                             "XCB3" ":=" "2.0" ";"
   def var = "XCB3"
   def cst = "2.0"                  (ref uti)
= (use var) ":=" (use cst) ";"      env uti
                                       def var = "XCB3"
                                       def cst = "2.0"

le texte uti vu comme un type : (use uti) retourne une suite de chaînes de caractères ;
le texte uti vu comme un type : (ref uti) retourne un environnement de définitions.

Un exemple de référence :

def txt
   ref uti
= "IF " (use var) "<>0 THEN" "^M"
  (use var) ":=" (use cst) ";" "^M"
  "END IF;" "^M"

texte évalué                      ou encore
"IF " "XCB3" "<>0 THEN" "^M"      IF XCB3<>0 THEN
"XCB3" ":=" "2.0" ";" "^M"        XCB3:=2.0;
"END IF;" "^M"                    END IF;

l'environnement des définitions de txt est simplement une référence au texte uti, l'environnement des définitions de txt est donc exactement l'environnement des définitions de uti – de ce fait, le texte txt évalué a la visibilité des textes définis localement au texte uti, soit ici les textes var et cst.