previous up next contents
Précédent : Actions de recherche Remonter : Actions de recherche Suivant : Implémentations

Interfaces

A chaque classe est attaché un graphe décrivant les états qu'une instance de cette classe peut connaître et les transitions dites régulières entre ceux-ci : ces transitions sont induites par l'envoi de messages (en termes Smalltalk) ou, plus généralement, par l'activation de fonctions génériques (en termes CLOS) : dans ce second cas, plusieurs graphes colorés peuvent être impliqués dans ce que nous appelons une ``multi-transition''. Dans ce qui suit, nous utilisons le terme ``message'' même dans ce second cas.

Les états sont décrits selon une ou plusieurs dimensions. Dans un espace à une seule dimension, un état est appelé ``couleur''. (Le graphe correspondant est appelé ``c-graphe''.) Dans un espace à N dimensions, une contribution élémentaire à un état est appelée ``pigment''. (Le concept de pigment permet de lutter contre l'explosion combinatoire.) Une ``gamme'' de pigments rassemble tous les pigments appartenant à une même dimension. N gammes de pigments (une par dimension) forment une ``palette''. Plusieurs palettes peuvent exister dans un tel graphe (appelé ``p-graphe''), mais une seule est valide à un instant donné. Un p-graphe peut aussi comporter des ``mélanges'' récursivement obtenus par ``composition'' de deux ou plusieurs pigments de gammes différentes d'une même palette. Couleurs, pigments et mélanges sont collectivement appelés ``chromas''. Dans un c-graphe, l'état d'un objet est matérialisé par un ``jeton'' migrant de couleur en couleur sous l'effet des messages ; dans un p-graphe, l'état d'un objet est matérialisé par N ``mini-jetons'' (un par gamme) se déplaçant dans les pigments et se rassemblant éventuellement dans les mélanges. Un graphe coloré peut comporter une dernière catégorie de noeuds, les ``noeuds virtuels'', utilisés pour factoriser des transitions. Aucun jeton ou mini-jeton ne transite par les noeuds virtuels.

Chaque noeud est caractérisé par une condition booléenne (évaluée par l'envoi d'un message à l'instance concernée) et/ou résulte d'une construction de type ET ou OU. Il y a trois types de constructions essentielles : la ``décomposition'' qui éclate une couleur en N pigments ; la ``conjonction'' qui rassemble un ou plusieurs pigments/mélanges en un mélange ; la ``sélection'' qui matérialise, en un chroma ``éphémère'', un choix entre plusieurs chromas (le plus souvent, des pigments d'une même gamme). Autre type de construction, les ``constructions de factorisation'' dont les noeuds source sont des noeuds virtuels. La sémantique de chaque type de construction s'exprime simplement à partir d'une sémantique plus élémentaire, celle des transitions ``réflexes'' (terme proposé par J.-P. Giacometti) convergeant au noeud destination (conjonction) ou divergeant du noeud source (autres constructions) : armée par la présence en son noeud source d'une ``marque'' (jeton ou mini-jeton(s)), une transition réflexe se déclenche si la condition du noeud d'arrivée est vérifiée : la marque passe alors du noeud source au noeud destination.

Muni de ces concepts de base, on définit un héritage des transitions régulières le long des transitions réflexes : ceci induit une économie de représentation des graphes.

Une syntaxe textuelle (dérivée de CLOS) et une syntaxe visuelle ont été élaborées.


previous up next contents
Précédent : Actions de recherche Remonter : Actions de recherche Suivant : Implémentations