next up previous contents
Next: Sémantique de la séquence Up: Sémantique des premières constructions Previous: Sémantique des expressions

Sémantique de l'affectation


L'instruction d'affectation sert à modifier le contenu d'une variable. Une variable est toujours liée à un emplacement (adresse) de la mémoire. Le contenu de cet emplacement peut être ou pas initialisé.

nom_variable := expression

L'affectation modifie ce contenu avec la valeur résultat d'évaluer l'expression à droite du symbole := (membre droit de l'affectation). L'affectation n'est donc possible que si


Exemple:

y : character;
x : integer := 7; 
begin
x := 3 + x;
y := `x`;
end;


Pour réaliser la première affectation, on doit préalablement évaluer l'expression 3 + x.


3 + x x <- 7 ==> 3 + 7 ==> 10


Après affectation, le contenu de la variable x est modifié de 7 en 10, et y est initialisée.



 
   
y <-
x <-
 
 

 
Mémoire
 
?? puis `x`
7 puis 10
 
 
 
 
 


Exemple: affectations sémantiquement érronées

 a : contant integer := 3;
 b : character := `c`;
 x : integer;
 y : integer := 5;
begin
a := a + 2; 
y := x + y;
x := b;
y := put(10);
end

1.
a est une constante et sa valeur ne peut être modifiée,

2.
x n'est pas initialisée, et donc, la valeur de x + y ne peut être calculée,

3.
b est de type character alors que x est de type integer. Les types sont incompatibles et donc, l'affectation est impossible.

4.
put(10) est une instruction et donc, ne renvoie pas une valeur. Or, une valeur est nécessaire pour réaliser l'afffectation de y. En effet, put(10) n'est pas une expression.



next up previous contents
Next: Sémantique de la séquence Up: Sémantique des premières constructions Previous: Sémantique des expressions
Maria-Viginia Aponte
2001-11-21