“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 229 — #239
i
i
i
i
i
i
i
i
5.3 Le modèle déclaratif avec état explicite
229
Opération
Description
{NewCell X C}
Créez une nouvelle cellule C avec contenu initial X.
{Exchange C X Y} Opération atomique : Liez X à l’ancien contenu de la
cellule C et mettez Y comme nouveau contenu.
X=@C
Liez X au contenu actuel de la cellule C.
C:=X
Mettez X comme nouveau contenu de la cellule C.
X=C:=Y
Une autre syntaxe pour {Exchange C X Y}.
Tableau 5.2 Les opérations sur les cellules.
Pour le confort du programmeur, ce tableau contient deux opérations supplémentaires, @ (l’accès) et := (l’affectation). Ces deux opérations n’offrent pas de nouvelle
fonctionnalité parce qu’elles peuvent être définies avec Exchange. L’utilisation de
C:=Y comme une expression a l’effet d’un Exchange : elle renvoie le contenu ancien
comme résultat.
Il est extraordinaire que l’addition des cellules suffise pour construire tous les
merveilleux concepts que l’état peut offrir. Tous les concepts sophistiqués comme
les objets, les classes et les autres abstractions de données peuvent être construits
avec le modèle déclaratif étendu par les cellules. La section 6.2 explique comment
construire les classes et les objets. En pratique, leur sémantique est définie par cette
même construction, mais le langage a un soutien syntaxique pour faciliter leur usage
et l’implémentation a un soutien pour les rendre plus efficaces [38].
5.3.2 La sémantique des cellules
La sémantique des cellules demande une extension à la mémoire qui s’appelle la
mémoire affectable ou la mémoire à affectation multiple. Les opérations NewCell
et Exchange sont définies par rapport à cette mémoire. Nous définissons aussi
comment la gestion de mémoire fonctionne pour cette mémoire.
L’extension de l’état d’exécution
À côté de la mémoire à affectation unique s, nous ajoutons une nouvelle mémoire m
appelée mémoire affectable. Cette mémoire contient des cellules, qui sont des paires
de la forme x : y, où x et y sont des variables dans la mémoire à affectation unique. Au
début d’une exécution, la mémoire affectable est vide. La sémantique garantit que x
est toujours liée à un nom qui représente une cellule. Par contre, y peut être n’importe
quelle valeur partielle. L’état d’exécution devient un triple (M ST , s, m).
© Dunod – La photocopie non autorisée est un délit
Précédent

- 244/370

Suivant