“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 230 — #240
i
i
i
i
i
i
i
i
230
5
• La programmation avec état explicite
L’opération NewCell
L’instruction sémantique est :
({NewCell x y}, E)
L’exécution fait les actions suivantes :
– Créer un nouveau nom de cellule n.
– Lier E(y) et n en mémoire.
– Si le lien réussit, ajouter la paire E(y) : E(x) à la mémoire affectable m.
– S’il échoue, lever une condition d’erreur.
L’opération Exchange
L’instruction sémantique est :
({Exchange x y z}, E)
L’exécution fait les actions suivantes :
– Si la condition d’activation est vraie (E(x) est déterminée), faites les actions
suivantes :
• Si E(x) n’est pas liée au nom d’une cellule, lever une condition d’erreur.
• Si la mémoire affectable contient E(x) : w, faire les actions suivantes :
Modifier la paire en mémoire affectable pour devenir E(x) : E(z).
Lier E(y) et w en mémoire.
– Si la condition d’activation est fausse, suspendre l’exécution.
La gestion de mémoire
Il faut deux modifications à la gestion de mémoire pour tenir compte de la mémoire
affectable :
– L’extension de la définition d’accessibilité. Une variable y sera accessible si la
mémoire affectable contient x : y et si x est accessible.
– La récupération de cellules. Si une variable x devient inaccessible et si la
mémoire affectable contient la paire x : y, enlevez cette paire.
5.3.3 Le partage et l’égalité
Avec l’introduction des cellules, nous avons de ce fait étendu le concept d’égalité.
Nous devons distinguer l’égalité des cellules et l’égalité de leurs contenus. Cela nous
mène aux concepts de partage (« aliasing ») et d’égalité d’identité.
i
i
i
i
i
i
i
i
230
5
• La programmation avec état explicite
L’opération NewCell
L’instruction sémantique est :
({NewCell x y}, E)
L’exécution fait les actions suivantes :
– Créer un nouveau nom de cellule n.
– Lier E(y) et n en mémoire.
– Si le lien réussit, ajouter la paire E(y) : E(x) à la mémoire affectable m.
– S’il échoue, lever une condition d’erreur.
L’opération Exchange
L’instruction sémantique est :
({Exchange x y z}, E)
L’exécution fait les actions suivantes :
– Si la condition d’activation est vraie (E(x) est déterminée), faites les actions
suivantes :
• Si E(x) n’est pas liée au nom d’une cellule, lever une condition d’erreur.
• Si la mémoire affectable contient E(x) : w, faire les actions suivantes :
Modifier la paire en mémoire affectable pour devenir E(x) : E(z).
Lier E(y) et w en mémoire.
– Si la condition d’activation est fausse, suspendre l’exécution.
La gestion de mémoire
Il faut deux modifications à la gestion de mémoire pour tenir compte de la mémoire
affectable :
– L’extension de la définition d’accessibilité. Une variable y sera accessible si la
mémoire affectable contient x : y et si x est accessible.
– La récupération de cellules. Si une variable x devient inaccessible et si la
mémoire affectable contient la paire x : y, enlevez cette paire.
5.3.3 Le partage et l’égalité
Avec l’introduction des cellules, nous avons de ce fait étendu le concept d’égalité.
Nous devons distinguer l’égalité des cellules et l’égalité de leurs contenus. Cela nous
mène aux concepts de partage (« aliasing ») et d’égalité d’identité.
