“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 101 — #111
i
i
i
i
i
i
i
i
2.8 Exercices
101
La deuxième occurrence de l’identificateur P est-elle libre ou liée ? Justifiez votre
réponse.
Indice : La réponse sera évidente si vous traduisez d’abord en langage noyau.
➤ Exercice 2 — L’environnement contextuel
La section 2.4 explique comment un appel de procédure est exécuté. Prenez la
procédure MulByN avec la définition suivante :
declare MulByN N in
N=3
proc {MulByN X ?Y}
Y=N * X
end
et l’appel {MulByN A B}. Supposez que l’environnement à l’appel contient
(entre autres) {A → 10, B → x 1 }. Quand le corps de la procédure est exécuté,
un nouvel environnement est calculé. La correspondance N → 3 est ajoutée à
ce nouvel environnement. Pourquoi est-ce nécessaire ? En particulier, N → 3
n’existerait-elle pas déjà quelque part dans l’environnement à l’appel ? Cela ne
serait-il pas suffisant pour s’assurer que l’identificateur N correspond déjà à 3
pendant l’exécution de la procédure ? Donnez un exemple où N n’existe pas dans
l’environnement à l’appel. Donnez alors un deuxième exemple où N existe à
l’appel mais correspond à une autre valeur que 3.
➤ Exercice 3 — Les fonctions et les procédures
Si le corps d’une fonction a une instruction if avec une clause else qui manque,
une exception sera levée quand la condition du if sera fausse. Expliquez pourquoi ce comportement est correct. Cette situation n’arrive pas avec les procédures.
Expliquez pourquoi.
➤ Exercice 4 — Les instructions if et case
Cet exercice explore la relation entre les instructions if et case.
a) Définissez l’instruction if en utilisant l’instruction case. Cela montre que
l’instruction conditionnelle n’ajoute pas d’expressivité par rapport à la correspondance de formes. Il aurait pu être ajouté comme une abstraction linguistique.
b) Définissez l’instruction case avec l’instruction if, en utilisant les opérations
Label, Arity et ´.´ (sélection de champ).
Cela montre que l’instruction if est essentiellement une version plus primitive
de l’instruction case.
➤ Exercice 5 — L’instruction case
Cet exercice teste vos connaissances de l’instruction case complète. Prenez la
procédure suivante :
© Dunod – La photocopie non autorisée est un délit
Précédent

- 116/370

Suivant