《编译原理》期末复习资料汇总336.docx
《《编译原理》期末复习资料汇总336.docx》由会员分享,可在线阅读,更多相关《《编译原理》期末复习资料汇总336.docx(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编译原原理期期末复习习资料【题 11】1. (a|bb)*(aaa|bbb)(aa|b)*画出状状态转换换图。IaIb 11,2,32,3,42,3,5 22,3,42,3,4,66,7,82,3,5 22,3,52,3,42,33,5,6,77,8 22,3,4,66,7,82,3,4,66,7,82,3,5,77,8 22,3,5,66,7,82,3,4,77,82,3,5,66,7,8 22,3,5,77,82,3,4,77,82,3,5,66,7,8 22,3,4,77,82,3,4,66,7,82,3,5,77,8IaIb123243325446575675746 新的状状态转换换图
2、如下下: (1)AA=11,2,3,BB=44,5,6,77 Aa=2,4 (2)AA=11,3,B=2,C=4,5,66,7 AAa=2BB,Abb=33,5 (3)AA=11,BB=22,CC=33,DD=44,5,6,77(单单元素可可以不用用看,必必有,古古先看DD) Da=4,7DD,Dbb=55,6D,AAa=2BB,Abb=33C,BBa=4DD,Bbb=33C,CCa=2BB,Cbb=55C,则则有ab ABC BDCCBDDDD2. (a*|b*)bb(baa)*的的状态转转换图。IaIb 11,2,3,442,43,4,5,66,8 22,42,45,6,8 33,4,5,
3、66,8-3,4,5,66,7,8 55,6,8-7 33,4,5,66,7,86,83,4,5,66,7,8 776,8- 66,8-7IaIb1232243-54-657567-7-6新的状态态转换图图如下:化简:(用用终结状状态与非非终结状状态,然然后输出出状态一一致分一一类)。(1)AA=11,2,6,BB=33,4,5,77 Aa=2 (2)AA=11,2,B=6,C=3,4,77,DD=55 Cb=5,6 (只要要有一个个不属于于任何一一个集合合,就不不行)(3)AA=11,2,B=6,C=3,D=4,7,EE=55 Ab=3,4 (4) A=1,BB=22,CC=66,DD=33
4、,EE=44,7,F=5 AAa=2BB,Abb=33D,BBa=2BB,Bbb=44E,CCa=7EE,Dbb=55F,EEb=6CC,Faa=77E,FFb=5FFab ABD BBECE-D-FE-CFEF注意事事项:知识要要点:u 正则表达达式:;是最左边边一个字字母一定定是,其其余字母母为的任任意组合合,不包包括。a和若若干个aa(包括括0的情情形)后后跟一个个b构成成的符号号串集合合a和aa后跟若若干个(包包括0的的情形)bb构成的的符号串串集合u 状态转换换图(有有穷状态态自动机机): 【题 22】1.求如如下简单单算术表表达式文文法中语语法变量量的FOOLLOOW集。解答:(1
5、1)求表表达式文文法的语语法符号号的FIIRSTT集:FIRSST(FF)=(, idFIRSST(TT)=FFIRSST(FF)=(, id FIRSST(EE)=FFIRSST(TT)=(, id FIRSST(EE)=+,FIRSST(TT)=*, FIRSST(+)=+, FIIRSTT(*)=*FIRSST(()=(FIRSST())=)FIRSST(iid)=idd(2)求求表达式式文法的的语法变变量的 FOLLLOWW集:FOLLLOW(E) = #, ) FOLLLOW(E)= FFOLLLOW( E ) = #, ) FOLLLOW(T) = FIRRST(E)-FOLLLO
6、WW(E)FOLLLOWW(E)= +,),#FOLLLOW(T)= FFOLLLOW(T)= +,),#FOLLLOW(F) = FFIRSST(TT)FOLLLOWW(T)FOLLLOWW(T) =*,+,),# 6知识点点Firsst集合合的求法法: Firrst集集合最终终是对产产生式右右部的字字符串而而言的,但但其关键键是求出出非终结结符的FFirsst集合合,由于于终结符符的Fiirstt集合就就是它自自己,所所以求出出非终结结符的FFirsst集合合后,就就可很直直观地得得到每个个字符串串的Fiirstt集合1. 直接收收取:对对形如UU-aa的产产生式(其其中a是是终结符符),
7、把把a收入入到Fiirstt(U)中2. 反复传传送:对对形入UU-PP1P22P3Pn的的产生式式(其中中P是非非终结符符),应应先把FFirsst(PP1)中中的全部部内容传传送到FFirsst(UU)中,如果PP1中有有,把把Firrst(P2)中的内内容传送送到Fiirstt(U)中,类类推直到到Pi中中无。Folllow集集合的求求法: Follloww集合是是针对非非终结符符而言的的,Foolloow(UU)所表表达的是是句型中中非终结结符U所所有可能能的后随随终结符符号的集集合,特特别地,“$”是识识别符号号的后随随符,先先直接加加入到SS中。1. 直直接收取取:注意意产生式式右
8、部的的每一个个形如“Ua”的组组合,把把a直接接收入到到Follloww(U)中。2. 直直接收取取:对形形如“UP”(PP是非终终结符)的组合合,把FFirsst(PP)中非非收入入到Foolloow(UU)中。3. 反反复传送送:对形形如UaPP的产生生式(其其中P是是非终结结符)或或U-aPQQ(P,Q为非非终结符符且Q中中含),应把把Follloww(U)中的全全部内容容传送到到Follloww(P)中。例 文法:SAABc Aa| Bb|Firsst集合合求法:能由非非终结符符号推出出的所有有的开头头符号或或可能的的,但但要求这这个开头头符号是是终结符符号。如如此题AA可以推推导出a
9、a和,所所以FIIRSTT(A)=a,;同同理 FFIRSST(BB)=b,;SS可以推推导出aaBc,还还可以推推导出bbc,还还可以推推导出cc,所以以FIRRST(S)=a,bb,cFolllow集集合的求求法:紧紧跟随其其后面的的终结符符号或。但文文法的识识别符号号包含,在求求的时候候还要考考虑到。 具具体做法法是把所所有包含含你要求求的符号号的产生生式都找找出来,再再看哪个个有用。 Foolloow(SS)=如如求A的的,产生生式:SSABBc AAa| ,但但只有SSABBc 有有用。跟跟随在AA后面的的终结符符号是FFIRSST(BB)=b,当当FIRRST(BB)的元元素为时,
10、跟跟随在AA后的符符号就是是c,所所以 FFolllow(AA)=b,cc同理理Follloww(B)=c2.对下下面的文文法 GG : (1)计算这个文法的每个非终结符的 FIRST 集和 FOLLOW 集。(2) 证明这个方法是 LL(1) 的。(3) 构造它的预测分析表。解:(11)计算算这个文文法的每每个非终终结符的的FIRRST集集和FOOLLOOW集。 FIRSST集合合有: FIRSST(EE)=FFIRSST(TT)=FFIRSST(FF)=FFIRSST(PP)=(,aa,b,; FIRSST(EE)=+, FIRSST(TT)=FFIRSST(FF)=FFIRSST(PP)
11、=(,aa,b,; FIRSST(TT)=FIRRST(T)=(,a,b,; FIRSST(FF)=FFIRSST(PP)=(,aa,b,; FIRSST(FF)=FIRRST(P)=*,; FIRSST(PP)=(,aa,b,; FOLLLOW集集合有: FOLLLOW(E)=),#; FOLLLOW(E)=FOOLLOOW(EE)=),#; FOLLLOW(T)=FIRRST(E)FOLLLOWW(E)=+,),#;/不不包含 FOLLLOW(T)=FOOLLOOW(TT)=FFIRSST(EE)FOLLLOWW(E)=+,),#; FOLLLOW(F)=FIRRST(T)FOLLLOWW
12、(T)=(,a,b,+,),#;/不包包含 FOLLLOW(F)=FOOLLOOW(FF)=FFIRSST(TT)FOLLLOWW(T)=(,a,b,+,),#; FOLLLOW(P)=FIRRST(F)FOLLLOWW(F)=*,(,a,bb,+,),#;/不包含含 (2)证证明这个个方法是是LL(1)的的。 各产生式式的SEELECCT集合合有: SELEECT(E-TE)=FFIRSST(TT)=(,aa,b,; SELEECT(E-+EE)=+; SELEECT(E-)=FOOLLOOW(EE/)=),# SELEECT(T-FT)=FFIRSST(FF)=(,aa,b,; SELEE
13、CT(T-T)=FIIRSTT(T)=(,a,b,; SELEECT(T-)=FOOLLOOW(TT/)=+,),#; SELEECT(F-PF)=FFIRSST(PP)=(,aa,b,; SELEECT(F-*FF)=*; SELEECT(F-)=FOOLLOOW(FF)=(,a,bb,+,),#; SELEECT(P-(E)=( SELEECT(P-a)=a SELEECT(P-b)=b SELEECT(P-)= 可见,相相同左部部产生式式的SEELECCT集的的交集均均为空,所所以文法法GEE是LLL(11)文法法。 (3)构构造它的的预测分分析表。 文法GE的的预测分分析表如如下: 【
14、题 33】考虑下面面的文法法:(1) 求出所有语法变量的FIRSTOP集合和LASTOP集合。(2) 构造文法的算符优先关系表,并判断是否为算符优先文法。(3) 计算文法的算符优先函数。(4) 给出表达式和id*(id+id)的算符优先分析过程。解答:(1) 所有语法法变量的的FIRRSTOOP集合合和LAASTOOP集合合如下:(2)文文法的算算符优先先关系表表算符关 系算 符+-*/()id+-*/()id因为文法法中任意意两个终终结符之之间只存存在一种种关系,因因此该文文法为算算符优先先文法。(3) 文法的算算符优先先函数优先函数数算符+-*/()id#(栈内优优先函数数)2244044
15、0(栈外优优先函数数)11335050(4) 表达式的的算符优优先分析析过程步骤栈输入串优先关系系动作1#+#2#+#移进3#F+#用归约4#F+#移进+5#F+#移进6#F+FF#+#用归约7#E#+#用归约表达式iid*(id+id)的算符符优先分分析过程程步骤栈S优先关系系当前输入入字符RR输入字符符串0#id*(idd+idd)#1#id*(id+id)#2#N*(id+id)#3#N*(id+iid)#4#N*(id+id)#5#N*(id+id)#6#N*(N+id)#7#N*(N+id)#8#N*(N+iid)#9#N*(N+NN)#10#N*(N)#11#N*(N)#12#N*
16、NN#13#N停止#2.已知知文法 GSS 为为: S-aa|(T) T- T,SS|S (1) 计算 GSS 的的 FIIRSTTVT 和 LLASTTVT 。 (2) 构造 GSS 的的算符优优先关系系表并说说明 GGS 是否否为算符优优先文法法。 (3) 计算 GSS 的的优先函函数。 (4) 给出输输入串 (a,a)# 的算算符优先先分析过过程。解:(11)各符符号的FFIRSSTVTT和LAASTVVT:(2)算算符优先先关系表表: 因为文法法中任意意两个终终结符之之间只存存在一种种关系,因因此该文文法为算算符优先先文法。(3)对对应的算算符优先先函数为为: (4)句句子(aa,a)
17、#分析析过程如如下: 知识点点 FIRSSTVTT 及 LASSTVTT 求法法 构造集合合 FIIRSTTVT ( PP )的的两条规规则。 (i)若若有产生生式 PPa ,或或 PQa ,则则 a FIIRSTTVT ( PP )。 (ii)若若 a FIIRSTTVT ( PP ),且且有产生生式 PPQ ,则则 a FIIRSTTVT ( PP )。 构造集合合 FIIRSTTVT ( PP )的的两条规规则 (i)有有产生式式Pa,或或PaQ,则则aLASSTVTT(P)。(ii)若若 a LAASTVVT ( Q ),且且有产生生式 PPQ ,则则 a FIIRSTTVT ( PP
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理 编译 原理 期末 复习资料 汇总 336
限制150内