“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 59 — #69
i
i
i
i
i
i
i
i
2.4 La sémantique du langage noyau
59
Lisp permet la déclaration des variables à portée dynamique, qu’il appelle variables
spéciales [87]. Quel est le meilleur défaut pour la portée ? Le meilleur défaut pour une
valeur procédurale est la portée statique car une procédure qui fonctionne bien à sa
définition continuera à bien fonctionner indépendamment de l’environnement dans
lequel elle est appelée. C’est une propriété importante en génie logiciel.
La portée dynamique reste utile dans certains domaines. Par exemple, le cas d’une
procédure dont le code est transféré d’un ordinateur à un autre via le réseau. Certaines
de ses références externes, comme les appels à des opérations standard de bibliothèque,
peuvent utiliser la portée dynamique. De cette façon, la procédure utilisera les définitions locales pour ces opérations au lieu des définitions à distance. C’est bien plus
efficace.
8
L’abstraction procédurale
Récapitulons ce que nous avons appris de Max et LB. Il y a trois concepts :
1. L’abstraction procédurale. Toute instruction peut devenir une procédure simplement en la mettant dans une déclaration de procédure. Cela s’appelle
l’abstraction procédurale. En d’autres termes, nous utilisons l’abstraction
procédurale pour obtenir une procédure.
2. Les identificateurs libres. Un identificateur libre dans une instruction est un
identificateur qui n’est pas défini dans cette instruction. Il peut être défini dans
une autre instruction qui l’enveloppe.
3. La portée statique. Une procédure peut avoir des références externes. Ce sont des
identificateurs libres dans le corps de la procédure qui ne sont pas des arguments.
LB a une référence externe. Max n’en a pas. La valeur d’une référence externe
est sa valeur lors de la définition de la procédure. C’est une conséquence de la
portée statique.
Ensemble, ces trois concepts forment un des outils les plus puissants présenté dans ce
livre. Dans la sémantique, nous verrons que leur implémentation est simple.
Le comportement dataflow
Dans la mémoire à affectation unique, les variables peuvent être non liées. Mais
certaines instructions ont besoin de variables liées pour s’exécuter. Par exemple, que
se passe-t-il quand on exécute :
8. Pourtant, il n’y a pas de garantie que l’opération se comportera de la même manière sur l’ordinateur
cible. Alors le défaut devrait être la portée statique même pour les programmes répartis.
© Dunod – La photocopie non autorisée est un délit
Précédent

- 74/370

Suivant