“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 64 — #74
i
i
i
i
i
i
i
i
64
2
• La programmation déclarative
La création de valeur
L’instruction sémantique est :
(x = v, E)
où v est une valeur partiellement construite qui est un enregistrement, un nombre ou
une procédure. L’exécution fait les actions suivantes :
– Créer une nouvelle variable y en mémoire.
– Construiser la valeur représentée par v dans la mémoire et lier y à cette valeur.
Tous les identificateurs dans v sont remplacés par leur contenu en mémoire
donné par E.
– Lier E(x) et y en mémoire.
Nous avons vu comment construire des valeurs qui sont des enregistrements et des
nombres, mais comment construire une valeur procédurale ? Pour l’expliquer, nous
devons d’abord définir ce qu’est une occurrence libre d’un identificateur.
Les occurrences libres et liées des identificateurs
Une instruction s peut contenir beaucoup d’occurrences d’identificateurs. Pour
chaque occurrence, nous nous posons la question : où cet identificateur a-t-il été
déclaré ? Si la déclaration est dans une instruction (une partie de s ou pas) qui
entoure textuellement (qui contient) l’occurrence, alors nous dirons que la déclaration
obéit à la portée lexicale. Comme cette portée est déterminée par le texte du code
source, nous l’appelons aussi la portée statique.
Les occurrences d’un identificateur dans une instruction peuvent être liées ou libres
par rapport à cette instruction. Une occurrence X est liée par rapport à une instruction
s si elle est déclarée dans s. Il y a trois instructions qui font la déclaration des
identificateurs : l’instruction local, l’instruction case et la déclaration de procédure.
Une occurrence d’un identificateur qui n’est pas liée est libre. Les occurrences libres
peuvent exister seulement dans les fragments de programme incomplets, c’est-à-dire
dans les instructions que l’on ne peut pas exécuter. Dans un programme que l’on peut
exécuter, il est toujours vrai que chaque occurrence d’identificateur est liée.
Les occurrences d’identificateurs liées et les variables liées
Il ne faut pas confondre une occurrence d’identificateur liée et une
variable liée ! Une occurrence d’identificateur liée n’existe pas à
l’exécution ; c’est le nom textuel d’une variable qui apparaît dans
une instruction qui la déclare. Une variable liée existe à l’exécution ;
c’est une variable dataflow qui est liée à une valeur partielle.
i
i
i
i
i
i
i
i
64
2
• La programmation déclarative
La création de valeur
L’instruction sémantique est :
(x = v, E)
où v est une valeur partiellement construite qui est un enregistrement, un nombre ou
une procédure. L’exécution fait les actions suivantes :
– Créer une nouvelle variable y en mémoire.
– Construiser la valeur représentée par v dans la mémoire et lier y à cette valeur.
Tous les identificateurs dans v sont remplacés par leur contenu en mémoire
donné par E.
– Lier E(x) et y en mémoire.
Nous avons vu comment construire des valeurs qui sont des enregistrements et des
nombres, mais comment construire une valeur procédurale ? Pour l’expliquer, nous
devons d’abord définir ce qu’est une occurrence libre d’un identificateur.
Les occurrences libres et liées des identificateurs
Une instruction s peut contenir beaucoup d’occurrences d’identificateurs. Pour
chaque occurrence, nous nous posons la question : où cet identificateur a-t-il été
déclaré ? Si la déclaration est dans une instruction (une partie de s ou pas) qui
entoure textuellement (qui contient) l’occurrence, alors nous dirons que la déclaration
obéit à la portée lexicale. Comme cette portée est déterminée par le texte du code
source, nous l’appelons aussi la portée statique.
Les occurrences d’un identificateur dans une instruction peuvent être liées ou libres
par rapport à cette instruction. Une occurrence X est liée par rapport à une instruction
s si elle est déclarée dans s. Il y a trois instructions qui font la déclaration des
identificateurs : l’instruction local, l’instruction case et la déclaration de procédure.
Une occurrence d’un identificateur qui n’est pas liée est libre. Les occurrences libres
peuvent exister seulement dans les fragments de programme incomplets, c’est-à-dire
dans les instructions que l’on ne peut pas exécuter. Dans un programme que l’on peut
exécuter, il est toujours vrai que chaque occurrence d’identificateur est liée.
Les occurrences d’identificateurs liées et les variables liées
Il ne faut pas confondre une occurrence d’identificateur liée et une
variable liée ! Une occurrence d’identificateur liée n’existe pas à
l’exécution ; c’est le nom textuel d’une variable qui apparaît dans
une instruction qui la déclare. Une variable liée existe à l’exécution ;
c’est une variable dataflow qui est liée à une valeur partielle.
