欢迎来到天天文库
浏览记录
ID:12370279
大小:71.50 KB
页数:3页
时间:2018-07-16
《语法分析部分补充习题解答14》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、语法分析补充习题及解答1.P102习题3.10构造文法的LL(1)分析表。2.编写LL(1)语法分析器,进行文法G(L)的语法分析。并写出用此分析器分析句子的过程id+id*id;。3.用P69例3.22的文法<注:文法中的(6)改为F→digit(即数字)>,分析:(1)8+5*2n(n为换行符,即结束符)是否为符合该文法的句子。(2)8-5*2n是否为符合该文法的句子。要求采用LR分析方法,并给出分析过程中格局变化情况和相应的动作及所用产生式。1.P102习题3.10构造文法的LL(1)分析表。解答:(1)先求解FIRST集和FOLLOW集FIRST(D)={int
2、,real}FIRST(T)={int,real}FIRST(L)={id}FIRST(R)={,,ε}FOLLOW(D)={#}FOLLOW(L)={#}FOLLOW(T)={id}FOLLOW(L)={#}(2)得到分析表如下:输入符号intrealid,#DD→TLD→TLTT→intT→realLL→idRRR→,idRR→ε2.编写LL(1)语法分析器,进行文法G(L)的语法分析。并写出用此分析器分析句子的过程id+id*id;。文法G(L):L→E;L
3、εE→TE'E'→+TE'
4、-TE'
5、εT→FT'T'→*FT'
6、/FT'
7、modFT'
8、εF→(E)
9、i
10、d
11、num解答:LL(1)语法分析器由以下驱动程序和LL(1)分析表组成;(1)预测分析器的驱动程序:令ip指向ω#中的第一个终结符,top指向S;loopx:=top^;a:=ip^;ifx∈Tthenifx=athenpop(x);next(ip);elseerror(1);endif;elseifM[x,a]=X→Y1Y2...Ykthenpop(X);push(YkYk-1...Y2Y1);elseerror(2);endif;endif;exitwhenx=#;endloop;(2)LL(1)分析表idnum+-*/mod();#LE;LE;LE;LεETE'
12、TE'TE'E'+TE'-TE'εεTFT'FT'FT'T'εε*FT'/FT'modFT'εεFidnum(E)构造分析表的FIRST集和FOLLOW集为:FIRST(F)={(idnum}FIRST(T')={*/modε}FIRST(T)=FIRST(F)={(idnum}FIRST(E')={+-ε}FIRST(E)=FIRST(T)=FIRST(F)={(idnum}FIRST(L)={ε}∪FIRST(E)={ε(idnum}FOLLOW(L)={#}FOLL0W(E)={);}FOLLOW(E')={);}FOLLOW(T)={+-;)}FOLLOW(T'
13、)={+-;)}FOLLOW(F)={+-*/mod);}(3)分析器分析句子id+id*id;的过程略3.用P69例3.22的文法<注:文法中的(6)改为F→digit(即数字)>,分析:(1)8+5*2n(n为换行符,即结束符)是否为符合该文法的句子。(2)8-5*2n是否为符合该文法的句子。要求采用LR分析方法,并给出分析过程中格局变化情况和相应的动作及所用产生式。解答:(1)见P115表4.5。(2)8-5*2n不是符合该文法的句子,过程略。
此文档下载收益归作者所有