Précédent : Actions de recherche Remonter : Actions de
recherche Suivant : Mixins
Considérant que la programmation par objets s'est arrêtée au milieu du gué, notre approche en reprend l'idée de base (responsabiliser les structures de données) et la pousse à fond en faisant dépendre la réponse d'un objet à un message non seulement de la classe de cet objet mais aussi de son état. À chaque classe est donc attaché un graphe décrivant les possibles états d'une instance de cette classe et les transitions entre ceux-ci induites par les requêtes externes (messages ou fonctions génériques). Un tel graphe est appelé « graphe coloré », le terme de couleur évoquant métaphoriquement la notion d'état. Les états sont généralement décrits dans un espace à N dimensions : ceci accroît la modularité et permet de lutter contre l'explosion combinatoire du nombre d'états. Trois types de constructions peuvent lier les noeuds d'un graphe (i.e. états ou contributions à des états) : sélection (OU), conjonction (ET) et décomposition (d'un état en contributions). La sémantique de chaque type de construction peut être exprimée grâce à une sémantique plus simple, celle des « transitions réflexes » liant un noeud à un autre noeud (une fois armée, une telle transition fait feu si la condition d'arrivée est vraie). Pour simplifier l'expression des « transitions régulières » (dues à des requêtes externes), on est amené à introduire un héritage local le long des transitions réflexes. Spécification externe du comportement des instances d'une classe, un graphe coloré peut être augmenté par la définition de représentations en mémoire (une représentation par noeud du graphe) et de micro-méthodes (une pré-méthode et une post-méthode par transition). Ceci induit une distinction claire entre spécification et implémentation, ainsi qu'un haut degré de modularité (plusieurs implémentations différentes peuvent être définies pour une même spécification). Les changements de représentations sont gérés automatiquement par le système. L'héritage local le long des transitions réflexes s'étend aux micro-méthodes et aux représentations en mémoire.