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

📅  最后修改于: 2021-09-27 06:11:02             🧑  作者: 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  

乙)

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
(乙)
(C)
(四)答案:(乙)
说明:根据静态单赋值

  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只是正确选项。
这个问题的测验