问题 单项选择题

考查下列文法:

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是该文法的一个句型,其中 (1) 是句柄, (2) 是素短语, (3) 是该句型的直接推导, (4) 是该句型的最左推导, (5) 是该文法的一个句子。

(5)处填()。

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直接推导出来。

由于最左推导是对句型右部的最左非终结符进行推导,因此在第(4)空的选择答案中只有(E)*F+T满足此条件。

因为句子是仅含终结符的句型,所以第(5)空的选择答案中只有i有可能是句子,而E[*]T[*]F[*]i,所以i是该文法的一个句子。

多项选择题
单项选择题