L'instruction d'affectation [angl. assignment statement; all. Zuweisung] est l'instruction la plus fondamentale et élémentaire. Elle permet soit d'affecter [angl. to assign; all. zuweisen] la valeur d'une expression à une variable, soit de spécifier une expression dont la valeur doit être retournée par une fonction.
Figure 7.2 Syntaxe de l'instruction d'affectation
< assignment statement >
::= < variable reference > ":=" < expression > | < function identifier > ":=" < expression >
Le type de < expression > doit être compatible avec le type de la variable ou le type de la valeur retournée par la fonction. A l'exécution d'une affectation, l'expression à droite du symbole d'affectation ":=" est d'abord évaluée, puis, la valeur résultant de cette évaluation est affectée soit à la variable référencée par l'identificateur de variable situé à gauche du symbole d'affectation, soit à la fonction référencée par l'identificateur de fonction situé à gauche du symbole d'affectation. Voici quelques exemples d'affectations:
A := 6;
X := Y+Z;
Ok := ( I>=1 ) AND ( I<100 );
I := Sqrt( J ) - I*K
Les constructions situées à droite du symbole d'affectation sont considérées comme des expressions.
L'instruction d'affectation
X := Y;
se lit:
" Affecter à la cellule-mémoire désignée par l'identificateur X la valeur contenue dans la cellule-mémoire désignée par l'identificateur Y; fin d'instruction. "
Le symbole ";" (point-virgule) indique la fin d'une instruction. Le symbole de fin d'instruction isole cette instruction de la suivante. Ceci permet d'enchaîner plusieurs instructions sur une même ligne.
Exemple: A := 4; B := A; A := A+B;
Toute séquence d'affectations est exécutée séquentiellement par le processeur.
Notons que le symbole d'affectation varie d'un langage de programmation à l'autre. Ainsi on trouve les symboles:
= en C, BASIC, COBOL, FORTRAN, PL/1 etc.
:= en Pascal, MODULA-2, ALGOL etc.
<- en APL.
Il est important de bien comprendre le mécanisme de l'affectation.
Figure 7.3 Le mécanisme de l'affectation
L'identificateur situé à gauche du symbole d'affectation est utilisé pour localiser une cellule-mémoire par son adresse, c'est-à-dire pour spécifier la destination de l'information.
L'identificateur situé à droite du symbole d'affectation est utilisé pour désigner le contenu de la cellule-mémoire référencée par l'identificateur, c'est-à-dire pour spécifier l'origine de l'information transférée. Dans ce cas on parlera de la valeur de l'identificateur.
Lors d'une affectation, le contenu d'une cellule, utilisée dans un contexte de destination, est détruit et remplacé par la valeur définie par sa partie droite. Dans l'affectation A := A + B - 6 la partie droite qui forme l'expression A + B - 6 est d'abord évaluée, puis, la valeur de l'expression est attribuée à la variable A située à gauche du symbole d'affectation. Donc, seule la valeur de la variable de gauche est altérée tandis que celle de l'expression de droite n'est pas modifiée par l'affectation.
On définit par initialisation d'une variable la première affectation à cette variable.
Exercice: Etudier l'état des cellules A, B et C durant l'exécution des séquences d'affectations suivantes et donner une interprétation correcte de chaque séquence:
VAR A, B, C: Integer;
a) BEGIN b) BEGIN
A := 2; B := 2; A := 0; B := A; A := B
C := A; END;
A := B;
B := C
END;
TERMES TECHNIQUES
affectation
destination de l'information
expression
initialisation d'une variable
instruction d'affectation
mécanisme de l'affectation
origine de l'information
symbole de fin d'instruction
valeur de l'identificateur
© Aflo Informatique , 2003-2004