1. Given the following BNF: expr -> expr + expr | expr * expr | ( expr ) | numbe
ID: 3693470 • Letter: 1
Question
1.
Given the following BNF:
expr -> expr + expr | expr * expr | ( expr ) | number
number -> number digit | digit
digit -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Which of these values can be generated? (select all that apply)
a. -35
b. 2000
c. (12.5)
d. (259)
2.
Given the following BNF
expr -> expr + expr | expr * expr | ( expr ) | number
number -> digit
digit 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Which of these values can be generated? (select all that apply)
a. 1+2
b. 3 * 3
c. 60 - 8
d. 12 + 6
3.
Given the following EBNF:
expr -> term { + term }
term -> factor { * factor }
factor -> ( expr ) | number
number -> digit { digit }
digit -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Which of these values can be generated? (select all that apply)
a. 0.25
b. 1600
c. 68 * 6 +12
d. 3 + 18
4.
Given the following EBNF
expr -> term { + term }
term -> number
number -> digit { digit }
digit -> 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9
Which of these values can be generated? (select all that apply)
a. 2 - 10
b. 3 * 1
c. 15
d. 2 + 2
Explanation / Answer
Answer:
1. b and d
This grammar is used for generating integers
So fractional cant be generated
Also there is no unary minuss so -35 wont b generated
Remaining can be generated very easily.
2) Grammar one production is missing compared to part 1, a) and b) answer because two digit nunbers cant b generated
Because there is no production
Number->number digit
So ans will be the one in which one digit number there.
3) only c) will be generated because decimal term cant b generated
1600 is not possible directly. 3+18 no rule generates that because after application of any rule * must come
And c satisfies all the requirements.
4) d) is the right option. In this * one cant b generated. Only + term is there so one + one wil b generated.
Related Questions
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.