L'information construite à l'aide des matrices de phyla et d'opérateurs est suffisante pour décider si un opérateur donné appartient en propre, appartient indirectement ou n'appartient pas à un phylum donné. Cependant toute évaluation d'attribut nécessitant une recherche dans les matrices, il serait très coûteux, à l'exécution, de ne conserver que cette information.
Aussi, après construction des matrices réalise-t-on une analyse des attributs, qui construit pour chaque attribut et chaque phylum la fermeture transitive de la relation « l'opérateur appartient au phylum ». Ce calcul est conservé dans la P-list de variables auxiliaires.
Par exemple, pour le phylum TRM, on construit la P-list des symboles :
evalt-TRM : évaluationrecht-TRM : recherchecpltt-TRM : complétionimptt-TRM : impressionentre-TRM : entréesorte-TRM : sortieevale-TRM : impression évaluéeLa P-list de imptt-TRM est, dans la syntaxe initiale :
( nulle imptt-err atome imptt-atome liste imptt-liste
env imptt-env rep imptt-err lsp imptt-lsp
def imptc-def ref imptc-ref
stg imptt-err use imptt-err )
- nulle : c'est l'attribut des opérateurs qui n'appartiennent pas au phylum TRM – ici rep, stg et use
- atome, liste : c'est l'attribut des objets Lisp qui ne représentent aucun opérateur.
- env, lsp : l'attribut est imptt-, soit l'impression complète, puisque ces opérateurs n'appartiennent pas directement au phylum TRM.
- def, ref : l'attribut est imptc-, soit l'impression concise, puisque ces opérateurs appartiennent en propre au phylum TRM.
La fonction Lisp get permet alors d'accéder immédiatement au traitement à effectuer, à l'occurrence d'un opérateur dans un phylum donné.
(get 'imptt-TRM 'env)
traitement = fonction imptt-env
(get 'imptt-TRM 'rep)
traitement = fonction imptt-err
(get 'imptt-TRM 'def)
traitement = fonction imptc-def
1 |
Les attributs de phyla permettent de construire les trois premières « propriétés » des P-liste : Les attributs d'opérateurs permettent de construire, dans chaque phylum, l'attribut attaché à chaque opérateur défini. L'analyse étant réalisée après la modification des matrices de phyla et d'opérateurs, l'information : « l'opérateur appartient nouvellement au phylum » ou « l'opérateur appartenait anciennement au phylum » est perdue. Or c'est cette information qui détermine s'il faut ou non modifier la P-list. Aussi la conserve-t-on dans un "champ auxiliaire" de la matrice des opérateurs. |
2 |
Les attributs d'opérateurs étant de deux sortes, on a deux traitements :
|