Bonjour,
Un compilateur raisonnablement intelligent sait qu'il est dans une (voir plusieurs) boucle(s) et qu'il la(les) gère par la pile quand il compile ce type de code.Envoyé par Juju_41
Il sait donc qu'il faut compiler le goto sous la forme d'une série de POP de la pile (nombre variable selon le nombre de boucles séparant le goto de son label) avant de faire le JMP.
Un langage supportant les goto doit :
- soit les gérer correctement (ce que font la plupart)
- soit les interdire explicitement hors de la portée de la boucle ou de la fonction en cours, parce que sinon, le programme a toutes les chances de finir par planter, vu l'incohérence de la pile au bout de quelques appels/boucles/sauts.
Partager