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   5places 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 !