public class ProgSimpleWhileTraduit {
public static int insCourante;
public static int []memoire = new int[1000];
// Table des symboles
// x : 0
public static void main(String []args) {
insCourante = 1;
while (true) {
System.err.println("ins="+insCourante);
switch(insCourante) {
case 1:
memoire[0] = 0; // traduction de x=0
insCourante += 1; break; // passage à l'instruction suivante
case 2:
if (memoire[0]<10) { // évaluation du test et branchements
insCourante = 3; // vers la première instruction du corps
} else {
insCourante = 4; // sort de la boucle
}
break;
case 3:
memoire[0] += 1; // traduction x += 1
insCourante = 2; break; // retour ne début de boucle
case 4:
System.out.println("x="+memoire[0]);
insCourante += 1; break;
case 5:
System.exit(0); // arrêt de la machine
}
}
}
}