📜  门| GATE-CS-2017(Set 1)|问题14

📅  最后修改于: 2021-06-29 06:06:51             🧑  作者: Mango

考虑以下三个地址代码的中间程序

p  = a - b
q = p * c
p = u * v
q = p + q

以下哪一项与上述代码中的静态单项分配相对应

一种)

p1 = a - b
q 1 = p1 * c
p1 = u * v
q1 = p1 + q1  

B)

p3 = a - b
q4 = p3 * c
p4 = u * v
q5 = p4 + q4

C)

p 1 = a - b
q1 = p2   * c
p3 = u * v
q2 = p4 + q3

D)

p1 = a - b
q1 = p * c
p2 = u * v
q2 = p + q

(A) A
(B) B
(C) C
(D) D答案: (B)
说明:根据静态单个分配

  1. 一个变量不能在LHS中多次使用
  2. 变量应至少初始化一次。

现在看给定的选项

  • a –代码违反条件1,因为在此语句中再次初始化了p1:p1 = u * v
  • c代码无效,因为q 1 = p 2 * c,q 2 = p 4 + q 3 –在这些语句中p 2 ,p 4 ,q 3不会在任何地方初始化
  • d-代码无效,因为q 2 = p + q不正确,而没有将其移至寄存器

因此,选项B仅是正确的选项。
这个问题的测验