Ybadoo - Soluções em Software Livre
Tutoriais
Compiladores

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));

 

Código de três endereços não otimizado, representado por quádruplas
 operarg1arg2result
(0)*Z2T1
(1)-Y1T2
(2)+T1T2T3
(3)=T3 X
(4)-Y1T4
(5)+K5T5
(6)/T4T5T6
(7)=T6 W
(8)*2ZT7
(9)+K5T8
(10)-YT8T9
(11)-T7T9T10
(12)=T10 K
Grafo Acíclico Dirigido
Grafo acíclico dirigido
Código de três endereços otimizado, representado por quádruplas
 operarg1arg2result
(0)*Z2T1
(1)-Y1T2
(2)+T1T2T3
(3)=T3 X
(4)+K5T4
(5)/T2T4T5
(6)=T5 W
(7)*2ZT6
(8)-YT4T7
(9)-T6T7T8
(10)=T8 K