$$ \text { Consider the following two syntax-directed definitions SDD1 and SDD2 for type declarations. } $$
| SDD1 | |
|---|---|
| Grammar(G1) | $$ \text { Semantic Rules } $$ |
| $$ \mathrm{D} \rightarrow \mathrm{TV} $$ |
$$ \begin{aligned} & \text { D.type = T.type } \\ & \text { V.type = T.type } \end{aligned} $$ |
| $$ \mathrm{T} \rightarrow \mathrm{int} $$ |
$$ \text { T.type = int } $$ |
| $$ \mathrm{T} \rightarrow \text { float } $$ |
$$ \text { T.type = float } $$ |
| $$ \mathrm{V} \rightarrow \mathrm{~V}_1 \mathrm{id} $$ |
$$ \begin{aligned} & V_1 \cdot \text { type }=\text { V.type } \\ & \text { put(id.entry, V.type) } \end{aligned} $$ |
| $$ \mathrm{V} \rightarrow \mathrm{id} $$ |
$$ \text { put(id.entry, V.type) } $$ |
| SDD2 | |
|---|---|
| Grammar(G2) | $$ \text { Semantic Rules } $$ |
| $$ \mathrm{D} \rightarrow D_1 \mathrm{id} $$ |
$$ \begin{aligned} & \text { D.type }=D_1 \cdot \text { type } \\ & \text { put(id.entry, } D_1 \cdot \text { type) } \end{aligned} $$ |
| $$ \mathrm{D} \rightarrow \mathrm{~T} \text { id } $$ |
$$ \begin{aligned} & \text { D.type = T.type } \\ & \text { put(id.entry, T.type) } \end{aligned} $$ |
| $$ \mathrm{T} \rightarrow \text { int } $$ |
$$ \text { T.type = int } $$ |
| $$ \mathrm{T} \rightarrow \text { float } $$ |
$$ \text { T.type = float } $$ |
Consider the following expression: $x[i] = (p + r) * -s[i] + \frac{u}{w}$. The following sequence shows the list of triples representing the given expression, with entries missing for triples (1), (3), and (6).
| (0) | + | p | r |
| (1) | |||
| (2) | uminus | (1) | |
| (3) | |||
| (4) | / | u | w |
| (5) | + | (3) | (4) |
| (6) | |||
| (7) | = | (6) | (5) |
Which one of the following options fills in the missing entries CORRECTLY?
Consider the following syntax-directed definition (SDD).
| S → DHTU | { S.val = D.val + H.val + T.val + U.val; } |
| D → “M” D1 | { D.val = 5 + D1.val; } |
| D → ε | { D.val = –5; } |
| H → “L” H1 | { H.val = 5 * 10 + H1.val; } |
| H → ε | { H.val = –10; } |
| T → “C” T1 | { T.val = 5 * 100 + T1.val; } |
| T → ε | { T.val = –5; } |
| U → “K” | { U.val = 5; } |
Consider the syntax directed translation given by the following grammar and semantic rules. Here N, I, F and B are non-terminals. N is the starting non-terminal, and #, 0 and 1 are lexical tokens corresponding to input letters "#", "0" and "1", respectively. X.val denotes the synthesized attribute (a numeric value) associated with a non-terminal X. I$$_1$$ and F$$_1$$ denote occurrences of I and F on the right hand side of a production, respectively. For the tokens 0 and 1, 0.val = 0 and 1.val = 1.
$\begin{array}{llll}N & \rightarrow & I \# F & \text { N.val }=I . v a l+F . v a l \\ I & \rightarrow & I_1 B & I . v a l=\left(2 I_1 \cdot v a l\right)+\text { B.val } \\ I & \rightarrow & B & I . v a l=B . v a l \\ F & \rightarrow & B F_1 & F . v a l=\frac{1}{2}\left(B . v a l+F_1 \cdot v a l\right) \\ F & \rightarrow & B & F . v a l=\frac{1}{2} B . v a l \\ B & \rightarrow & 0 & \text { B.val }=\mathbf{0} . \mathrm{val} \\ B & \rightarrow & 1 & \text { B.val }=\mathbf{1} . \mathrm{val}\end{array}$The value computed by the translation scheme for the input string
$$10 \# 011$$
is ____________. (Rounded off to three decimal places)
GATE CSE Subjects
Browse all chapters by subject