Answer
a) Constructing a phrase-structure grammar that generates
all signed decimal numbers, consisting of a sign, either
+ or −; a nonnegative integer; and a decimal
fraction that is either the empty string or a decimal
point followed by a positive integer, where initial zeros
in an integer are allowed.
b) Giving the Backus–Naur form of this grammar.
c) Constructing a derivation tree for−31.4 in this grammar.
Work Step by Step
a) S → (sign)(integer)
S → (sign)(integer) . (positive integer)
(sign) → +
(sign) → −
(integer) → (digit)
(integer) → (integer)(digit)
(digit) → i, i = 1, 2, 3, 4, 5, 6, 7, 8, 9, 0
(positive integer) → (integer)(nonzero digit)
(positive integer) → (nonzero digit)(integer)
(positive integer) → (integer)(nonzero digit)
(integer)
(positive integer) → (nonzero digit)
(nonzero digit) → i, i = 1, 2, 3, 4, 5, 6, 7, 8, 9
b) (signed decimal number) ::= (sign)(integer) |
(sign)(integer) . (positive integer)
(sign) ::= +|−
(integer) ::= (digit) | (integer)(digit)
(digit) ::= 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
(nonzero digit) ::= 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
(positive integer) ::= (integer)(nonzero digit) |
(nonzero digit)(integer) | (integer)
(nonzero integer)(integer) | (nonzero digit)