Código de três endereços
De Wikipedia, a enciclopédia encyclopedia
Em ciência da computação, o código de três endereços é uma forma de representar código intermediário usado por compiladores para auxiliar na implementação das transformações voltadas a melhorar o código.[1] Um código de três endereços é uma representação linear de um Grafo acíclico dirigido (DAG).[2] Cada instrução em um código de três endereços pode ser descrita como uma 4-tupla: (operador, operando1, operando2, resultado).
Cada declaração tem a forma geral de:
tal como:
onde x, y e z são variáveis, constantes ou variáveis temporárias geradas pelo compilador. op representa qualquer operador, por exemplo, um operador aritmético.
Expressões que contenham mais de uma operação fundamental, tais como:
não são representáveis em código de três endereços como uma única instrução. Em vez disso, elas são decompostas em uma série equivalente de instruções, tais como
O termo código de três endereços é usado, mesmo que algumas instruções usem mais ou menos de dois operandos. As principais características do código de três endereços são de que cada instrução implementa exatamente uma operação fundamental, e que a origem e o destino pode se referir a qualquer registro disponível.