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

2. Matrice des phyla

Notations

On note dans la suite :

A = [ ai j ] la matrice des degrés de connexité
B = [ bi j ] la matrice des liens de filiation
δi j = 1 si i=j
δi j = 0 si i≠j (symboles de Kronecker)
ai j se lit : « i est fils de j avec un poids ai j »
bi j se lit : « i est directement fils de j avec un poids bi j »

2.1. matrices compatibles

(A,B) est un couple de matrices compatible si :

 
k
bi k ak j  
l
ai l bl j ai j − δi j

qui signifie que, au δi j près :

Remarque :

Avant toute chose, il faut savoir si la notion est pertinente, c'est-à-dire s'il existe au moins un couple de matrices (A,B) qui vérifie la condition de compatibilité.

Il en existe. On peut prendre par exemple pour A la matrice identité et pour B la matrice nulle.

2.2. transformation directe

Soit Tp q la transformation :

Tp q : αi j = ai j + ai p aq j
 βi j = bi j + δi p δq j

Tp q intuitivement rajoute l'arc « p est fils de q ».

Alors pour (A,B) compatible, Tp q(A,B) est compatible si aq p = 0.

On remarque que la condition signifie très précisément :
« on reste compatible tant qu'on n'introduit pas de cycle. »

Calcul

βi k αk j

= (bi k + δi p δq k) (ak j + ak p aq j)

= bi k ak j + δi p (aq j + aq p aq j) + bi k ak p aq j

= (ai j − δi j) + δi p aq j + (ai p − δi p) aq j

= (ai j + ai p aq j) − δi j = αi j − δi j

αi l βl j

= (ai l + ai p aq l) (bl j + δl p δq j)

= ai l bl j + δq j(ai p + ai p aq p) + ai p aq l bl j

= (ai j − δi j) + δq j ai p + ai p (aq j − δq j)

= (ai j + ai p aq j) − δi j = αi j − δi j

2.3. transformation inverse

Soit Sp q la transformation :

Sp q : ~ai j = ai j − ai p aq j
 ~bi j = bi j − δi p δq j

Sp q intuitivement supprime l'arc « p est fils de q ».

Alors pour (A,B) compatible, Sp q(A,B) est compatible si aq p = 0.

De plus, on a  : Sp q Tp q (A,B) = (A,B).

Calcul

La compatibilité de Sp q(A,B) se démontre de la même façon que pour Tp q(A,B).

On calcule : Sp q Tp q (A,B) = (A,B).

i j 

= αi j − αi p αq j

 

= (ai j + ai p aq j) − (ai p + ai p aq p) (aq j + aq p aq j)

 

= ai j + ai p aq j − ai p aq j = ai j

(sachant que (A,B) est compatible, on a : aq p = 0)

2.4. commutativité

Soit (A,B) un couple de matrices compatible.

Up q : ~ai j = ai j + x ai p aq j
 ~bi j = bi j + x δi p δq j
Vm n : ~ai j = ai j + y ai m an j
 ~bi j = bi j + y δi m δn j

avec x et y = 1 ou −1.

Alors :

Up q Vm n = Vm n Up q

si les transformations préservent la compatibilité.

Calcul

On note :

Up q (A) = [ Uai j

 Vm n Up q (A) = [ VUai j ]

Vm n (A) = [ Vai j

 Up q Vm n (A) = [ UVai j ]

VUai j 

= (Uai j) + y (Uai m) (Uan j)

 

= (ai j + x ai p aq j) + y (ai m + x ai p aq m) (an j + x an p aq j)

 

= (ai j + x ai p aq j + y ai m an j)
+ xy (ai p aq m an j + ai m an p aq j)
+ x2y an p aq m ai p aq j

UVai j 

= (Vai j) + x (Vai p) (Vaq j)

 

= (ai j + y ai m an j) + x (ai p + y ai m an p) (aq j + y aq m an j)

 

= (ai j + x ai p aq j + y ai m an j)
+ xy (ai m an p aq j + ai p aq m an j)
+ xy2 an p aq m ai m an j

Les termes croisés sont respectivement :

x2y an p aq m ai p aq j et xy2 an p aq m ai m an j

Ils sont nuls, puisque par compatibilité on a :

Up q est compatible sur (A,B), donc : aq p = 0
Vm n est compatible sur Up q(A,B), donc : Uan m = 0 = an m + x an p aq m
Vm n est compatible sur (A,B), donc : an m = 0
Up q est compatible sur Vm n(A,B), donc : Vaq p = 0 = aq p + y aq m an p

ce qui montre deux fois que : an p aq m = 0.

On remarque qu'ici la condition de compatibilité se traduit par le fait que dans le graphe :

p → q (concerne l'application de Up q)
m → n (concerne l'application de Vm n)

on ne doit pas introduire de cycle : la condition an p aq m = 0 signifie bien qu'on ne doit pas construire de cycle en deux étapes.

Note :

Avec trois transformations (p q,x) (m n,y) (r s,z), la commutativité imposerait :

as r + x as p aq r + y as m an r + xy (as m an p aq r + as p aq m an r) + xy2 as m an p aq m an r = 0

Les paramètres étant quelconques, on en déduit :

(a)as r = 0
(b)as p aq r = 0
(c)as m an r = 0
(d)as m an p aq r = 0
(e)as p aq m an r = 0
(f)as m an p aq m an r = 0

On retrouve donc les conditions de formation d'un cycle en trois étapes – plus particulièrement dans les cas (d) et (e).

2.5. conclusion

Partant pour A de la matrice identité et pour B de la matrice nulle, qui forment un couple de matrices compatible, on conserve un couple de matrices compatible par application des transformations du type Tp q ou Sm n. De plus, la transformation Sp q est bien l'inverse de Tp q, et ceci même quand on ne l'applique pas immédiatement après la transformation Tp q, du fait de la commutativité des transformations sur des couples de matrices compatibles.

On peut ainsi dégager les deux propriétés :