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
6.1. Les critères
6.2. Le classement
6.3. La structure Plate
6.31. La nature d'Objet : les éditeurs classiques
6.32. La nature de Type : la macro-génération
6.33. La nature de Classe
6.4. La nature d'Objet structuré
6.5. La nature de Type structuré
6.6. La nature de Classe structurée
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 structure Plate

1. La nature d'Objet : les éditeurs classiques

2. La nature de Type : la macro-génération

3. La nature de Classe

2. La nature de Type : la macro-génération

nature de Type - structure Plate

On a déjà abordé le thème de la macro-génération précédemment (cf. Chapitre 2.5, « Exemple de structurations connexes »). On la considère comme permettant de travailler sur des Types-Plats :

Type : une macro-définition, éventuellement paramétrée, permet de définir un modèle de suite de caractères.

Plat : une macro-expansion remplace l'invocation d'une macro-définition par du « texte en ligne », avec perte de la connaissance de la relation de dépendance entre la définition et l'utilisation de la macro.

Les exemples ont déjà été commentés : macro-by-example (pour le langage Lisp, [KoW 87]), MCOBOL (pour le langage COBOL, [TrY 80]) (cf. ibid.).

D'un tout autre point de vue, on peut citer [Knu 84] et la « Literate Programming » – la programmation littéraire. L'idée centrale, qui n'est pas nouvelle mais qui est abordée avec un regard nouveau, est de dire qu'un programme doit être lu par deux "individus" : (1) la Machine, avec son goût prononcé pour la précision et le souci du détail, et (2) l'Informaticien, qui préfère sans doute avoir une vision plus synthétique et explicative du problème exprimé. D. Knuth propose donc un langage, WEB, pour satisfaire les deux parties : partant d'un unique fichier, une première compilation fournit un texte compréhensible par la Machine, une seconde par l'Informaticien.