1、N ND N1 ND1 N01 D01 301N ND NDD DDD 3DD 30D 301N ND N1 ND1 N31 ND31 N431 ND431 N5431 D5431 75431N ND NDD NDDD NDDDD DDDDD 7DDDD 75DDD 754DD 7543D 754314.证明文法 S iSeS|iS| i 是二义性文法。对于句型 iiSeS 存在两个不同的最左推导:1/ 23S iSeS iiSesS iS iiSeS 所以该文法是二义性文法。5.给出描述下面语言的上下文无关文法。 =1,i=0 =i=1 =01)SABAaAb| abBcB |ASb|aba
2、 |3)aSd| A |bAc|6.设计一个最简的 DFA M,使其能够识别所有的被 3 整除的无符号十进制整数。2|5|81|4|77.设计一个 DFA,使其能够接受被 4 整除的二进制数。8.写出表达下列各项的正则表达式。1)二进制数且为 5 的倍数。*01*00 y=(01 *01*1代入 B=0C+10B+11C B=(0|11C+10BB=(10 *(0|11C将 C=xB+yA代入上式 B=uB+vAB=u *vA其中 u=(10*(0|11x v=(10y 将 B=u*vA 代入 A=0 *1u* vA+0*T3/ 23A=(0 *1u* v*0*T 将 A代入 S=(0 * 1
3、u*v*0*T 串(0 *1u* v*0*即为所求。2)该题目理解为:至少有一个 a 和一个 b ,且 a 出现在 b 的前面 *b(a|b|c*3) (b|c*a(b|c*a*(b|c* (a(b|c*a | b | c4) (0|10*(1| 第三章1.词法分析器的功能是什么?读源程序的字符序列,逐个拼出单词,并构造相应的内部表示 TOKEN;同时检查源程序中的词法错误。2.试分析分隔符 (1-90-9*|0(.0-90-9*| (E(+|-| 0-90-9*4. 写出识别 C 语言中所有单词的 LEX程序。L=A-Z | a-zD=0-9D1=1-9%(L|_(L|D|_return (
4、1 。 D1D*return (2+return (3第四章1.设有如下文法 GS:S aABbcd |A ASd |B SAh | eC |C Sf | Cg |(1) 求每个产生式的 Predict 集。(2) 该文法是否为 LL(1文法?为什么? (1Predict(S aABbcd=aPredict(S =#,d,f,a,h Predict(A ASd=a,d4/ 23Predict(A =h,a,d,b,ePredict(B SAh=a,d,hPredict(B eC=ePredict(B =bPredict(C Sf=a,fPredict(C Cg=a,f,gPredict(C =
5、g,b(2因为 Predict(A ASd Predict(A ,所以该文法不是 LL(1文法。2.下列描述括号匹配的文法中,哪些是 LL(1(1 S (SS |S S (SS |(3 S S(S(4 S (S | S (S不是, (2是, (3不是, (4不是3.已知文法 GE:E E+T | TT T*F | FF i | (E 请按递归下降法构造该文法的语法分析程序。求产生式的 predict 集合: predict(E E+T=i,(predict(E Tpredict(T T*Fpredict(T F因为文法中非终极符号 E和 T 对应的产生式的 predict 集合的交集都不为空,
6、所以该文法 不满足自顶向下分析的条件,现对文法进行等价变换得到如下文法:ETEE+TETFTT*FTFi(E求新文法的predict 集合Predict(E TE=(,iPredict(E =+=#,Predict(T FTPredict(T *FT =*5/ 23=+,#Predict(F i=iPredict(F (E=(因为以上文法中任意非终极符号对应的产生式的 predict 集合的交集都为空,所以满足自 顶向下分析的条件,所以可以写出如下的递归下降语法分析伪代码:Void E( if(token (,i T( E (。else Error(void E ( if(token + Ma
7、tch( 。+T(。else if(token #, 。void T( if(token i,( F( Tvoid T if(token *Felse if(token +,#void F( if(token i i else if(token (E( Match( 4.构造一个 LL(1文法 G,它能识别语言 L:L= | 为字母表 上不包括两个相邻的 1 的非空串 ,其中 =0, 1。并证明你所构造的文法是 LL(10E| 1F0E |1FB |C |Predict(A 0E=0Predict(A1F=1Predict(B0EPredict(EB=0,1=#Predict(FC对任意非终极
8、符号对应的产生式的 predict 集合的交集都为空,所以该文法是 LL(1文6/ 23法。5.已知文法 GA为: A aABe | aB Bb | d(1) 试给出与 GA等价的 LL(1文法 G A。(2) 构造 G A的 LL(1分析表并给出输入串 aade#的分析过程。所求 GA为 :aAA ABedBB bB(5(6Predict(A aAABe=#,d=dbB对任意非终极符号对应的产生式的 predict 集合的交集都为空,所以该文法是 LL(1文(3) 分析表如下:abde#aade#的分析过程如下分析栈输入流动作A#aade#替换 (1 #匹配ade#替换 (2ABe#替换 (
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1