edited by
11,454 views
36 votes
36 votes

Consider the following intermediate program in three address code

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

Which one of the following corresponds to a static single assignment form of the above code?

  1. p1 = a  - b
    q1 = p1 * c
    p1 = u  * v
    q1 = p1 + q1
  2. p3 = a  - b
    q4 = p3 * c
    p4 = u  * v
    q5 = p4 + q4
  3. p1 = a  - b
    q1 = p2 * c
    p3 = u  * v
    q2 = p4 + q3
  4. p1 = a - b
    q1 = p * c
    p2 = u * v
    q2 = p + q
    
edited by

4 Answers

Best answer
40 votes
40 votes
16 votes
16 votes
Option D INCORRECT because in last line we are directly adding P+Q without moving it to register

option C INCORRECT because in last line Q3+P4 is done however they dont even contain any value

Option A INCORRECT because P1 has been assigned value twice

So OPTION (B) is CORRECT
1 votes
1 votes
OPTION B becoz in option A same variable is used p1 , q1 which creates ambiguity also bt in option B different variable is used .
Answer:

Related questions

80 votes
80 votes
7 answers
1
makhdoom ghaya asked Feb 13, 2015
28,737 views
The least number of temporary variables required to create a three-address code in static single assignment form for the expression $q + r / 3 + s - t * 5 + u * v/w$ is_...