public class Function2Traduit2 { public static void main(String []args) { int []memoire = new int[10000]; int instruction = 1; int sommetDePile = 0; while (true) { System.err.println(">>>>>>Instruction à exécuter "+instruction); switch (instruction) { case 1: System.out.println("Début"); instruction++; break; case 2: // préparation de l'appel à f et de son retour memoire[sommetDePile] = instruction+1; sommetDePile++; instruction = 7; break; case 3: System.out.println("Milieu"); instruction++; break; case 4: // préparation de l'appel g et de son retour memoire[sommetDePile] = instruction+1; sommetDePile++; instruction = 9; break; case 5: System.out.println("Fin"); instruction++; break; case 6: System.exit(0); case 7: // début de f(); System.out.println("Je suis dans f()"); instruction++; break; case 8: // revenir au point indiqué au moment de l'appel // ce point est indiqué en sommet de la pile sommetDePile--; instruction = memoire[sommetDePile]; break; case 9: // début de g(); System.out.println("Je suis dans g()"); instruction++; break; case 10: // préparation de l'appel à f memoire[sommetDePile] = instruction+1; sommetDePile++; instruction = 7; break; case 11: sommetDePile--; instruction = memoire[sommetDePile]; break; } } } }