资源描述
一、 选择1.下面说法正确的是:A 一个正规文法也一定是二型文法B 一个二型文法也一定能有一个等价的正规文法2.文法GA:Ab AAB BAb Ba是(): A 二型文法 B 正规文法3.下面说法正确的是(): A lex是一个词法分析器B yacc是一个语法分析器的生成器4.一个LR(1)文法合并同心集后,如果不是LALR(1)文法必定存在(): A 移进-归约冲突B 归约-归约冲突5.75 PL/0语言编译程序使用递归子程序法进行语法分析,他的文法必须满足(): A LL(1)文法B SLR(1) 文法问答第1题(6分)试对 repeat x:=b until ba or (ba goto( )( )真出口链( )(3)goto( )( )(4)if ba goto( 8 )( 6 )真出口链( 6,2 )(3)goto( 4 )( 1 )(4)if b0 用正规文法。(2) L2= 0na 1nbmcm| n0,m 0 用二型文法。(1)解:描述L1语言的正规文法如下:ScAAaA|BBdDDbD|(2)解:描述L2语言的二型文法如下:SABA0A1|0a1BbBc|问答第8题(5分)文法GS为:SSdT | TTTG | GG(S) | a试给出句型(SdG)a的短语、简单(直接)短语、句柄和最左素短语。解:句型(SdG)a的短语:(SdG)a 、(SdG) 、SdG 、G 、a简单(直接)短语:G 、a句柄:G最左素短语:SdG问答第9题(5分) 给出与正规式 R(aba)*((ba)*|b)b等价的NFA。解:与正规式 R(aba)*((ba)*|b)b等价的NFA如下图:问答第10题(6分)将下图的NFA确定化为DFA。解:用子集法确定化如下表IIaIb状态X,0,1,30,1,3.2,3,Y.1,3.2,Y.Y.0,1,30,1,31,3.1,3.2,3,Y2,3,YY.2,Y.Y.X1234Y确定化后如下图问答第11题(5分)将文法GS 改写为等价的GS,使GS不含左递归和左公共因子。GS: SA AB|AS BaB|a解:文法GS 改写为等价的不含左递归和左公共因子的GS为:S AA BAASA|B aBBB|问答第12题(10分) 判断下面文法是否为LL(1)文法,若是,请构造相应的LL(1)分析表。SaDDSTe|TbMMbHHM|解: 文法的 FIRST集和FOLLOW集非终结符FIRST集FOLLOW集Sa.# ,bDa ,# ,bTb.e.Mb.e.Hb ,e.由于select(DSTe)select(D)=a# ,b=select(HM)select(H)= b e =所以该文法是LL(1)文法,LL(1)分析表如下表。LL(1)分析表aeb#SaD.DSTeTbMMbHHM.表中不含多重入口也可说明文法是LL(1)的。
展开阅读全文