The following BNF grammar defines the grammar of the scientific notation for non-negative floating point numbers. -> | E -> | . -> | + | - -> | -> 0 | -> 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 Explain why 100.4E+1 is not part of the language defined by the grammar.
The following BNF grammar defines the grammar of the scientific notation for non-negative floating point numbers.
<SNFloat> -> <Float> | <Float>E<Exponent>
<Float> -> <NonZeroDigit> | <NonZeroDigit>.<Num>
<Exponent> -> <Num> | +<Num> | -<Num>
<Num> -> <Digit> | <Digit><Num>
<Digit> -> 0 | <NonZeroDigit>
<NonZeroDigit> -> 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Explain why 100.4E+1 is not part of the language defined by the grammar.
Our aim is to try to generate 100.4E+1, using the given grammer
We have to start with
<SNFloat>
Since our target string has E in it. Only possible way to achieve that is with
<Float>E<Exponent>
Let us only focus on the part before E in 100.4E+1. If we cannot generate 100.4 with <float>, we cannot generate 100.4E+1. So now our aim is to try to generate 100.4 with <float>
Trending now
This is a popular solution!
Step by step
Solved in 3 steps