📜  门| Gate IT 2005 |第86章

📅  最后修改于: 2021-06-28 21:22:23             🧑  作者: Mango

Q83 Part_A

考虑上下文无关的语法

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

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

(A) ID + ID + ID + ID
(B) ID +(ID *(ID * ID))
(C) (id *(id * id))+ id
(D) ((id * id + id)* id)答案: (A)
解释:
根据最左边的推导: 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)是正确的。
如果您在以上文章中发现任何错误,请在下面发表评论。

这个问题的测验