Gestion des variables#
Introduction#
Comment gérer les variables en MVaP ?
Une variable correspond principalement à deux choses : son nom, et son adresse.
On va utiliser les HashMap de Java, pour associer le nom à l’adresse (et d’autres informations comme le type, …).
Soit adresse_variable l’adresse de notre variable dans la pile.
pour récupérer la valeur de la variable en haut de pile, on fait
PUSHG adresse_variable,pour stocker la valeur en haut de la pile dans la variable, on fait
STOREG adresse_variable.
Exemple#
Soit variable un entier de valeur inconnue.
Voici un exemple de pile, avec le bas de la pile à gauche, et le sommet à droite (on empile à droite)
bas [2, 5, variable, 6, 3, 87] sommet
0 1 2 3 4 5 ← places dans la pile
La place de variable dans la pile est 2.
On a donc, dans la HashMap : variable → 2
Maintenant, on veut exécuter l’instruction variable = variable + 10.
1) On met variable en haut de pile
PUSHG 2
bas [2, 5, variable, 6, 3, 87, variable] sommet
2) On rajoute 10 dans la pile
PUSHI 10
bas [2, 5, variable, 6, 3, 87, variable, 10] sommet
3) On additionne variable et 10
ADD
bas [2, 5, variable, 6, 3, 87, variable + 10] sommet
4) On stocke variable + 10 dans variable
STOREG 2
bas [2, 5, variable + 10, 6, 3, 87] sommet
Et voilà, on a fini d’effectuer variable = variable + 10 !