考察下列文法:G(VT,VN,E,P) 其中:VT={+,*,(,),i} VN={E,T,F} E是开始符号; P: E→E+T|T T→T*F|F F→(E)|i F*F+T是该文法的一个句型,其中(53

admin2019-03-04  7

问题 考察下列文法:G(VT,VN,E,P)
   其中:VT={+,*,(,),i}
   VN={E,T,F}
   E是开始符号;
   P:
   E→E+T|T
   T→T*F|F
   F→(E)|i
   F*F+T是该文法的一个句型,其中(53)是句柄,(54)是素短语。(55)是该句型的直接推导,(56)是该句型的最左推导。(57)是该文法的一个句子。

选项 A、T+(i+i)
B、i+(i+F)
C、i
D、(E)

答案C

解析 句型F*F+T的推导过程如下:
   E→E+T→T+T→T*F+T→F*F+T
   因为E→T*F+T,E→F*F+T,T→F,所以F是句型F*F+T相对于产生式T→F的直接短语,又因为它是该句型的最左直接短语,所以F是该句型的句柄。
   同理,可分析出句型F*F+T的短语有F、F*F和F*F+T。由于素短语中至少应该含有一个终结符,所以F不是素短语;由于F*F+T中包含了短语F*F,所以它也不是素短语。因此该句型的素短语是F*F。
   因为句型F*F+T→F*F+T*F,所以F*F+T*F是该句型的直接推导。而F*F+i, F*F+F*F和i*i+T都不能由句型F*F+T直接推导出来。
   由于最左推导是对句型右部的最左非终结符进行推导,在供选择答案中只有 (E)*F+T满足此条件。
   因为句子是仅含终结符的句型,供选择答案中只有i有可能是句子,而E→T→F→i,所以i是该文法的一个句子。
转载请注明原文地址:https://kaotiyun.com/show/ePTZ777K
0

相关试题推荐
最新回复(0)