“doc” (Col. : Science Sup 17x24) — 2007/7/19 — 18:18 — page 239 — #249
i
i
i
i
i
i
i
i
5.4 L’abstraction de données
239
5.4.3 Le passage de paramètres
Les opérations d’une abstraction de données peuvent avoir des arguments et des
résultats. Différents mécanismes ont été inventés pour passer les arguments et résultats
entre un programme et l’abstraction qu’il appelle. Nous passons en revue les plus
importants. Pour chaque mécanisme, nous donnons un exemple dans une syntaxe
qui ressemble à Pascal et nous donnons sa définition dans le modèle avec état de ce
chapitre. Cette définition peut être vue comme la sémantique du mécanisme. Nous
utilisons le Pascal à cause de sa simplicité. Java est actuellement plus populaire,
mais expliquer sa syntaxe plus élaborée n’est pas appropriée pour cette section. (La
section 6.5 donne des exemples de syntaxe de Java.)
Le passage par référence (« call by reference »)
L’identité de l’entité du langage est passée à la procédure. La procédure peut ensuite
utiliser l’entité librement. C’est le mécanisme de base utilisé par tous nos modèles
de calcul pour toutes les entités du langage y compris les variables dataflow et les
cellules.
Les langages impératifs donnent souvent un autre sens au passage par référence. Ils
supposent que la référence est stockée dans une cellule locale à la procédure. Dans
notre terminologie, c’est un passage par valeur où la référence est considérée comme
une valeur (voir plus loin). Si vous étudiez un langage avec le passage par référence,
nous recommandons d’examiner la définition du langage avec soin pour comprendre
le sens exact.
Le passage par variable (« call by variable »)
C’est un cas spécial du passage par référence. L’identité d’une cellule est passée à la
procédure. Voici un exemple :
procedure sqr(var a:integer);
begin
a:=a*a
end
var c:integer;
c:=25;
sqr(c);
browse(c);
© Dunod – La photocopie non autorisée est un délit
Précédent

- 254/370

Suivant