# Ullman (Compiler Design) Edition 2 Exercise 5.2 Question 5 (Page No. 317)

254 views

This grammar generates binary numbers with a "decimal" point:

• $S\rightarrow L.L\mid L$
• $L\rightarrow LB\mid B$
• $B\rightarrow 0\mid 1$

Design an S-attributed SDD to compute $S.val$, the decimal-number value of an input string. For example, the translation of string $101.101$ should be the decimal number $5.625$.

edited
1

@Lakshman Patel RJIT

pls remove the hint part from the question as it is not part of it. Also they've asked to design S-attributed SDD so there will be no use of inherited attributes

1

Fixed it

1 vote
 $S\rightarrow L.L$ $S.val=L_{1}.val+\frac{L_{2}.val}{2^{L_{2}.count}}$ $S\rightarrow L$ $S.val=L.val$ $L\rightarrow LB$ $L.val=2*L_{1}.val+B.val$ $L.count=L_{1}.count+B.count$ $L\rightarrow B$ $L.val=B.val$ $L.count=B.count$ $B\rightarrow 0$ $B.val=0$ $B.count=1$ $B\rightarrow 1$ $B.val=1$ $B.count=1$

## Related questions

1
228 views
This grammar generates binary numbers with a "decimal" point: $S\rightarrow L.L\mid L$ $L\rightarrow LB\mid B$ $B\rightarrow 0\mid 1$ Design an L-attributed SDD to compute $S.val$ ... be the decimal number $5.625$. Hint: use an inherited attribute $L.side$ that tells which side of the decimal point a bit is on.
For the SDD of Fig. $5.8$, give annotated parse trees for the following expressions: int a,b,c. float w,x,y,z.
For the SDD(SYNTAX-DIRECTED DEFINITIONS ) of Fig. $5.4$, give annotated parse trees for the following expressions: $(3+4)\ast(5+6)n.$ $1\ast2\ast3\ast(4+5)n.$ $(9+8\ast(7+6)+5)\ast 4n.$
Extend the SDD of Fig. $5.4$ to handle expressions as in Fig. $5.1$.