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.2. Les modifications non locales sur la forme évaluée
4.2.3. Les schémas optionnels
4.2.33.1. Définition inexistante
4.2.33.2. Schémas inexistants
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

Les schémas optionnels

Cette dernière difficulté se présente selon deux aspects :

1. Définition inexistante

2. Schémas inexistants

1. Définition inexistante

On peut se placer dans une situation où beaucoup de paramètres sont définis et peu d'entre eux sont instanciés. Ceci ne révélera pas toujours une situation d'erreur : on peut définir un cas très général dont chaque instance ne s'intéresse qu'à une faible partie. Ce serait le cas par exemple d'un outil de gestion de base de données : chaque élément de la base de données ne définit qu'un nombre restreint de champs.

La solution en l'état se présente sous la forme :

(lsp
   (if (egal (use txt) "{txt}")
       (rep ...indéfini...)
       (rep ...défini...)))

qui répond à la question, parce qu'on a la connaissance de la forme évaluée d'une utilisation indéfinie (ici : "{txt}"). Pour une expression plus concise, on peut alors introduire un nouvel opérateur.

opérateur : opt

ATM ::= ATM opt
opt -> NOM ENV REP REP

opt est défini sur le phylum ATM : il recherche le nom NOM dans l'environnement local ENV :
- s'il le trouve il évalue la première représentation REP,
- sinon il évalue la seconde.

En annexe on donne, avec l'utilisation de l'opérateur optionnel, le schéma de décompilation d'un champ complexe d'une base de données.