📜  门| GATE-CS-2015(套装1)|第 64 题

📅  最后修改于: 2021-09-25 04:11:54             🧑  作者: Mango

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

正确答案是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)来创建静态单赋值形式的三个地址代码。
这个问题的测验