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
5.5.1. La syntaxe de la syntaxe abstraite
5.5.2. Le graphe des phyla
5.5.3. Construction du graphe
5.5.33.1. Présentation
5.5.33.2. Matrice des phyla
5.5.33.3. Matrice des opérateurs
5.5.33.4. Implantation des algorithme
5.5.33.5. Analyse des attributs
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

Construction du graphe

1. Présentation

2. Matrice des phyla

3. Matrice des opérateurs

4. Implantation des algorithme

5. Analyse des attributs

4. Implantation des algorithme

Les matrices précédentes sont implantées en Lisp.

Pour permettre le parcours d'une matrice selon les lignes ou les colonnes, chaque élément de la matrice est doublement chaîné, une fois avec l'élément voisin selon les lignes et une fois avec l'élément voisin selon les colonnes :

implantation des algorithme

Ajouter un nouveau phylum ou un nouvel opérateur consiste à créer de nouveaux éléments de matrice, chaînés sur les listes existantes.

Supprimer un phylum ou un opérateur consiste à dérouter les pointeurs de listes sur les éléments des matrices, des éléments précédant ceux à supprimer vers les éléments suivant ceux-ci.

Modifier un phylum ou un opérateur consiste à parcourir, partiellement ou en totalité, les matrices des phyla et des opérateurs.

Calcul du coût

On considère N phyla et P opérateurs définis.

putphyl = création d'un phylum :
On crée 2N+1 éléments dans la matrice des phyla, et P éléments dans la matrice des opérateurs, soit en tout 2N+P+1 créations.
putoper = création d'un opérateur :
On crée N éléments dans la matrice des opérateurs.
putoperphyl = déclaration d'appartenance en propre d'un opérateur à un phylum :
On modifie le degré d'appartenance des pères du phylum, on réalise donc un parcours des N éléments d'une ligne de la matrice des phyla.
putperephyl = déclaration d'un lien de filiation entre deux phyla :
On modifie le degré d'appartenance de tous les opérateurs des pères du phylum père, soit P×N éléments visités ; pour chaque fils du phylum fils, et chaque père du phylum père, on modifie le degré de connexité de la matrice des phyla, soit P2 éléments visités ; en tout on a donc P×N+P2 éléments visités.
putfilsphyl = on réalise l'appel symétrique de putperephyl.

Les fonctions de suppression, rem..., sont de façon naturelle d'un coût similaire.