1.4k views

Consider the syntax directed definition shown below.

 $S \rightarrow \mathbf{ id :=} E$ $\{gen(\mathbf{ id}.place = E.place;);\}$ $E \rightarrow E_1 + E_2$ $\{t = newtemp();$ $gen(t = E_1.place + E_2.place;);$ $E.place = t;\}$ $E \rightarrow id$ $\{E.place = \mathbf{id}.place;\}$

Here, $gen$ is a function that generates the output code, and $newtemp$ is a function that returns the name of a new temporary variable on every call. Assume that ti's are the temporary variable names generated by $newtemp$. For the statement ‘$X : = Y + Z$’, the $3$-address code sequence generated by this definition is

1. $X = Y + Z$
2. $t_1 = Y+Z; X=t_1$
3. $t_1 =Y; t_2=t_1 +Z; X=t_2$
4. $t_1 =Y; t_2=Z; t_3=t_1+t_2; X=t_3$
edited | 1.4k views

using given semantic rules.

edited
+1
prashant sir t1=y+z
x=y+z

operand op1 op2  result

+           y      z      t1

=          t1              x

t1=y+z

x=t1

so ans is b
0
pooja mam u wrote operand in the place of operand and vice-versa

1
2