Non, ils ne sont pas equivalents. Peut etre que toi, tu sais la valeur de next mais sur le principe, ce n'est pas equivalent.
La, le probleme, c'est surtout le compilateur qui genere un code java pas terrible. Meme un outil qui permet de verifier la qualité du code, comme l'a suggéré manitta, ne pourra pas verifier ce genre de chose.
Une approche pourrait etre de faire quelques programmes basiques dans le métalangage dont on connait le résultat optimal et de verifier que le compilateur trouve un truc plus ou moins equivalent.
Par exemple, si on faiton s'attend à
Code : Sélectionner tout - Visualiser dans une fenêtre à part AFFICHE_TRACE("ma trace");Et si on obtient :
Code : Sélectionner tout - Visualiser dans une fenêtre à part System.out.println("ma trace");
bah c pas terrible
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 int i = 56; public void affiche_ma_trace() { for(;;) { if(((i * 3) - 10) == (90 + 68)) { System.out.println("ma trace"); break; } } }
Partager