Code à trois adressesEn informatique, le code à trois adresses[1] (TAC ou 3AC) est un type de langage intermédiaire utilisé par les compilateurs comme Clang/LLVM.
Chaque instruction TAC a au plus trois opérandes et est généralement une combinaison d'affectation et d'un opérateur binaire. Par exemple : Étant donné que le code à trois adresses est utilisé comme langage intermédiaire dans les compilateurs, les opérandes ne seront probablement pas des adresses mémoire concrètes ou des registres de processeur, mais plutôt des adresses symboliques qui seront traduites en adresses réelles lors de l'allocation des registres. Il n'est pas rare non plus que les noms d'opérandes soient numérotés séquentiellement, car le code à trois adresses est généralement généré par le compilateur. ExemplesCalcul d'une solution d'une équation du second degréEn code à trois adresses, cela se décompose en plusieurs instructions distinctes, plus faciles à traduire en langage d'assemblage. Il est également plus facile de détecter des sous-expressions qui se répètent, pour raccourcir le code.
Le code à trois adresses peut avoir des sauts conditionnels et inconditionnels et des méthodes d'accès à la mémoire. Il peut également avoir des méthodes d'appel de fonctions. De cette façon, le code à trois adresses peut être utile dans l'analyse de flux de contrôle. Dans l'exemple de type C ci-après, une boucle stocke les carrés des nombres entre 0 et 9 :
Le code à trois adresses sur la droite contient une optimisation : le pointeur t4 := i * 4
t5 := b + t4
*t5 := t3
Voir aussiNotes et références
Information related to Code à trois adresses |