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.2.1. La gestion des noms
4.2.11.1. Fragilité des programmes
4.2.11.2. Perte de branches de l'« arbre des textes »
4.2.11.3. Paramètres effectifs
4.2.11.4. « effets de bord »
4.2.2. Les modifications non locales sur la forme évaluée
4.2.3. Les schémas optionnels
4.2.4. Annexe : exemple d'emploi partiel
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

La gestion des noms

La première et principale difficulté qu'on rencontre concerne la gestion des noms de « textes ». Le problème se présente sous deux aspects :

Le premier point est un problème général, à résoudre au cas par cas selon la "sensibilité" de chacun. Le second est en revanche plus embarrassant, parce que le respect d'une discipline est toujours astreignant et qu'il sous-entend que le programme construit est assez fragile – cette fragilité se révélerait par un non respect de la discipline.

1. Fragilité des programmes

2. Perte de branches de l'« arbre des textes »

3. Paramètres effectifs

4. « effets de bord »

3. Paramètres effectifs

Le passage des paramètres effectifs n'est pas explicite : c'est un « effet de bord » du mécanisme d'empilement des environnements d'appel. L'instanciation du paramètre formel n'étant effective qu'à l'"extrême limite", il peut advenir qu'une autre définition du même symbole masque celle du paramètre effectif.

Par exemple, le schéma des fonctions est :

(def fonction
   ... NOM TYP ... INSTR ...
   (def nom () ((use NOM)))
   ...)

(on a les paramètres formels NOM, TYP, ..., INSTR ; on a une propriété : nom, qui utilise simplement le paramètre NOM). Une déclaration de fonction :

(def fct-1
   ((ref fonction)
    (def NOM () ("fct-1"))
    (def TYP () ("integer"))
    ...
    (def INSTR ...)))

fct-1 fait référence au modèle des fonctions, en instanciant les paramètres formels NOM, TYP, ..., INSTR. Dans ce cas, l'instruction INSTR pourra effectivement utiliser la propriété nom du modèle fonction : en effet le paramètre utilisé s'appelle NOM, un symbole bien trop "commun" pour ne pas être redéfini par INSTR.

Plusieurs solutions sont possibles :