📜  门| GATE-CS-2015(Set 1)|第64章

📅  最后修改于: 2021-06-28 22:53:29             🧑  作者: Mango

为表达式q + r / 3 + s – t * 5 + u * v / w创建静态单分配形式的三地址代码所需的最少临时变量数为
(A) 4
(B) 8
(C) 7
(D) 9答案: (B)
解释:

正确答案是8。此问题是在考试中作为填空题的要求。

三地址代码是编译器在优化代码时生成的中间代码。每三个地址代码指令最多可以具有三个操作数(常量和变量),并与赋值和二进制运算符。在三个地址代码中要注意的一点是,分配左侧(LHS)上使用的变量不能在LHS侧再次重复。静态单一分配(SSA)只是对三个地址代码的改进。

所以,在这个问题上,我们有

t1 = r / 3;

t2 = t * 5;

t3 = u * v;

t4 = t3 / w;

t5 = q + t1;

t6 = t5 + s;

t7 = t6 - t2; 

t8 = t7 + t4;

因此,我们需要8个临时变量(t1至t8)以静态单分配形式创建三个地址代码。
这个问题的测验