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));
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 |
oper | arg1 | arg2 | result | |
---|---|---|---|---|
(0) | * | Z | 2 | T1 |
(1) | - | Y | 1 | T2 |
(2) | + | T1 | T2 | T3 |
(3) | = | T3 | X | |
(4) | + | K | 5 | T4 |
(5) | / | T2 | T4 | T5 |
(6) | = | T5 | W | |
(7) | * | 2 | Z | T6 |
(8) | - | Y | T4 | T7 |
(9) | - | T6 | T7 | T8 |
(10) | = | T8 | K |