📜  门|门 IT 2005 |第 86 题

📅  最后修改于: 2021-09-25 06:57:50             🧑  作者: Mango

Q83 Part_A

考虑上下文无关文法

E → E + E
E → (E * E)
E → id

其中 E 是起始符号,终结符集是 {id, (,+,),*},非终结符集是 {E}。
根据上述语法解析时,以下哪个终端字符串具有多个解析树?

(一)身份证+身份证+身份证+身份证
(B) id + (id* (id * id))
(C) (id* (id * id)) + id
(D) ((id * id + id) * id)答案:(一)
解释:
根据最左边的推导: E -> E + E(使用 E -> E + E)
E -> E + E + E(使用 E -> E + E)
E -> E + E + E + E(使用 E -> E + id)
E -> id + E + E + E(使用 E -> id)
E -> id + id + E + E(使用 E -> id)
E -> id + id + id + E (使用 E -> id)
E -> id + id + id + id
根据最右边的推导: E -> E + E (使用 E -> E + E)
E -> E + E + E (使用 E -> E + E)
E -> E + E + E + E (使用 E -> E + id)
E -> E + E + E + id(使用 E -> id)
E -> E + E + id + id(使用 E -> id)
E -> E + id + id + E (使用 E -> id)
E -> id + id + id + id
因此,选项(A)是正确的。
如果您发现上面的帖子有任何错误,请在下面发表评论。

这个问题的测验