“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 228 — #238
i
i
i
i
i
i
i
i
228
5
• La programmation avec état explicite
Mémoire à affectation unique
Pile sémantique
(variables)
(cellules)
Mémoire à affectation multiple
V=c2
U=@V X=U.age if @X>=18 then ...
c1:W
W=34
c2:Z
Z=person(age: Y)
U
Y=c1
X
Figure 5.1 Le modèle déclaratif avec état explicite.
nouveau modèle de calcul. Il y a deux mémoires : la mémoire à affectation unique,
qui contient des variables dataflow que l’on peut lier à une valeur, et la mémoire à
affectation multiple, qui contient les cellules (les paires de noms et références). Le
tableau 5.1 montre son langage noyau. Comparé au modèle déclaratif, il y a deux
nouvelles instructions, les opérations NewCell et Exchange. Ces opérations sont
définies informellement dans le tableau 5.2.
s : :=
skip
Instruction vide
| |s 1 s 2
Séquence d’instructions
| local x in s end
Création de variable
| |x 1 =x 2
Lien variable-variable
| |x=v
Création de valeur
| if x then s 1 else s 2 end
Instruction conditionnelle
| case x of pattern
Correspondance de formes
then s 1 else s 2 end
| {x y 1 · · · ·y n }
Application de procédure
| try s 1 catch x then s 2 end Contexte d’exception
| raise x end
Lève exception
| {NewName x}
Création de nom
| {NewCell x y}
Création de cellule
| {Exchange x y z}
Échange de cellule
Tableau 5.1 Le langage noyau avec état explicite.
Précédent

- 243/370

Suivant