Pourquoi n'utilise-t-on pas les indicateurs de processeur pour une exécution conditionnelle? Au lieu de cela, le résultat d'une comparaison est placé sur la pile de paramètres. Est-ce parce que la boucle de l'interpréteur interne peut modifier les drapeaux lors de la prochaine instruction? Ou est-ce simplement pour abstraire la logique conditionnelle?Drapeaux de processeur et de processeur
E.g. sur x86, le registre flags contient les résultats d'une comparaison car la plupart des processeurs auront tous un registre flags.
Bonne réponse. Cela signifie d'utiliser le registre flags comme une optimisation, la quatrième machine virtuelle doit être modifiée pour inclure le registre de drapeaux dans le cadre de la définition, en cassant le code existant. Cela peut ou peut ne pas être avantageux. La vitesse peut être augmentée au prix de la complexité. – Daryl
@Daryl, l'optimisation du compilateur n'a pas besoin de modifications au niveau du code source, c'est-à-dire qu'il n'est pas nécessaire d'inclure des registres dans les définitions. Le compilateur Forth génère simplement un code machine qui utilise des indicateurs flags au lieu de stack dans certains cas. – ruvim