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.4. Comparaison critique
5.5. Construction de la Syntaxe Abstraite
6. Les Comparaisons avec d'autres Approches
7. Les Perspectives
7.1. Où se situe-t-on ?
7.2. Vers quoi tend-on ?
7.3. L'éditeur à références déductives
7.4. L'éditeur à références constructives
7.5. Les Problèmes – et les Réponses
7.6. L'état des travaux
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'éditeur à références déductives

Complément de l'éditeur à références concentrées, il permet de déduire, à partir de prémisses, des conditions à remplir, soit impérativement, soit sous forme de recommandations.

Par exemple, l'utilisation d'une variable x suggère la déclaration de cette variable dans la zone de visibilité. Plus simplement peut-être, partant des déclarations :

TYPE pile : RECORD
              contenu : ARRAY[1..100] OF real;
              index   : integer;
            END RECORD;

on déduit que l'utilisation d'un objet :
P...
sera :

P : de type pile,
P.contenu : de type anonyme « tableau de 100 réels »,
P.contenu(
 
) : de type réel, la case à remplir étant de type entier.

Ainsi la frappe de "P" fait suggérer à l'éditeur la suite du texte :

<rien>
.contenu
.contenu(
 
)

dont il peut vérifier ensuite si elle correspond bien au type attendu.

On définit alors un éditeur sémantique, qui vérifie la cohérence entre les objets utilisés et ceux qui sont déclarés dans la zone de visibilité du moment.

A un autre niveau l'éditeur peut suggérer des schémas de transformations à moindre coût. Par exemple :

schéma de transformation

(les références à « condition » et « instructions » sont conservées lors de la transformation). On notera que dans ce schéma on ne garantit pas la préservation de la sémantique du programme : l'éditeur suggère une transformation dans un « voisinage sémantique » mais il laisse à l'utilisateur le soin d'en apprécier les conséquences.