Apresente o código de três endereços, otimizado pela aplicação do método de construção de um grafo acíclico dirigido para blocos básicos, da seguinte sequência de comandos:
X = (Z * 2) + (Y - 1); W = (Y - 1) / (K + 5); K = (2 * Z) - (Y - (K + 5));
Solução do Exercício
Código de três endereços não otimizado, representado por quádruplas
oper
arg1
arg2
result
(0)
*
Z
2
T1
(1)
-
Y
1
T2
(2)
+
T1
T2
T3
(3)
=
T3
X
(4)
-
Y
1
T4
(5)
+
K
5
T5
(6)
/
T4
T5
T6
(7)
=
T6
W
(8)
*
2
Z
T7
(9)
+
K
5
T8
(10)
-
Y
T8
T9
(11)
-
T7
T9
T10
(12)
=
T10
K
Grafo acíclico dirigido
Código de três endereços otimizado, representado por quádruplas