《编译原理》期末复习资料汇总1826.docx
《《编译原理》期末复习资料汇总1826.docx》由会员分享,可在线阅读,更多相关《《编译原理》期末复习资料汇总1826.docx(21页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、编译原理期末复习资料【题 1】1. (a|b)*(aa|bb)(aa|b)*画出状态态转换图。IaIb 1,2,32,3,442,3,55 2,3,42,3,44,6,77,82,3,55 2,3,52,3,442,3,5,6,7,8 2,3,4,6,7,82,3,44,6,77,82,3,55,7,88 2,3,5,6,7,82,3,44,7,882,3,55,6,77,8 2,3,5,7,82,3,44,7,882,3,55,6,77,8 2,3,4,7,82,3,44,6,77,82,3,55,7,88IaIb123243325446575675746 新新的状态转转换图如下下: (1)
2、A=1,22,3,BB=4,5,6,7 Aa=2,4 (2)A=1,33,B=2,CC=4,5,6,7 Aa=2B,AAb=33,5 (3)A=1,BB=2,C=3,DD=4,5,6,7(单单元素可以以不用看,必必有,古先先看D) Da=4,7D,Dbb=5,6D,AAa=22B,AAb=33C,BBa=44D,BBb=33C,CCa=22B,CCb=55C,则则有ab ABC BDCCBDDDD2. (a*|bb*)b(bba)*的的状态转换换图。IaIb 1,2,3,42,43,4,55,6,88 2,42,45,6,88 3,4,5,6,8-3,4,55,6,77,8 5,6,8-7 3
3、,4,5,6,7,86,83,4,55,6,77,8 76,8- 6,8-7IaIb1232243-54-657567-7-6新的状态转转换图如下下:化简:(用用终结状态态与非终结结状态,然然后输出状状态一致分分一类)。(1)A=1,22,6,BB=3,4,5,7 Aa=2 (2)A=1,22,B=6,CC=3,4,7,D=5 Cb=5,6 (只要有有一个不属属于任何一一个集合,就就不行)(3)A=1,22,B=6,CC=3,D=4,7,E=5 Ab=3,4 (4) AA=1,B=2,CC=6,D=3,EE=4,7,FF=5 Aaa=2B,Abb=3D,Baa=2B,Bbb=4E,Caa=7E
4、,Dbb=5F,Ebb=6C,Faa=7E,Fbb=5Fab ABD BBECE-D-FE-CFEF注意事项项:知识要点点:u 正则表达式式:;是最左边一一个字母一一定是,其其余字母为为的任意组组合,不包包括。a和若干干个a(包包括0的情情形)后跟跟一个b构构成的符号号串集合a和a后后跟若干个个(包括00的情形)bb构成的符符号串集合合u 状态转换图图(有穷状状态自动机机): 【题 2】1.求如下下简单算术术表达式文文法中语法法变量的FFOLLOOW集。解答:(1)求求表达式文文法的语法法符号的FFIRSTT集:FIRSTT(F)=(, idFIRSTT(T)=FIRSST(F)=(, id
5、FIRSTT(E)=FIRSST(T)=(, id FIRSTT(E)=+,FIRSTT(T)=*, FIRSTT(+)=+, FIRRST(*)=*FIRSTT(()=(FIRSTT())=)FIRSTT(id)=idd(2)求表表达式文法法的语法变变量的 FFOLLOOW集:FOLLOOW(E) = #, ) FOLLOOW(E)= FFOLLOOW( EE ) = #, ) FOLLOOW(T) = FIRSST(E)-FOLLLOW(EE)FOLLLOW(EE)= +,),#FOLLOOW(T)= FFOLLOOW(T)= +,),#FOLLOOW(F) = FFIRSTT(T)FOL
6、LLOW(TT)FOLLLOW(TT) =*,+,),# 6知识点Firstt集合的求求法: FFirstt集合最终终是对产生生式右部的的字符串而而言的,但但其关键是是求出非终终结符的FFirstt集合,由由于终结符符的Firrst集合合就是它自自己,所以以求出非终终结符的FFirstt集合后,就就可很直观观地得到每每个字符串串的Firrst集合合1. 直直接收取:对形如UU-a的产生式式(其中aa是终结符符),把aa收入到FFirstt(U)中中2. 反反复传送:对形入UU-P11P2P33Pn的的产生式(其其中P是非非终结符),应应先把Fiirst(P1)中中的全部内内容传送到到Firss
7、t(U)中,如果果P1中有有,把FFirstt(P2)中的内容容传送到FFirstt(U)中中,类推直直到Pi中中无。Folloow集合的的求法: FFolloow集合是是针对非终终结符而言言的,Foolloww(U)所所表达的是是句型中非非终结符UU所有可能能的后随终终结符号的的集合,特特别地,“$”是识别别符号的后后随符,先先直接加入入到S中。1. 直接接收取:注注意产生式式右部的每每一个形如如“Uaa”的组组合,把aa直接收入入到Folllow(U)中。2. 直接接收取:对对形如“UP”(P是非终终结符)的的组合,把把Firsst(P)中非收收入到Foolloww(U)中中。3. 反复复
8、传送:对对形如UaP的的产生式(其其中P是非非终结符)或或U-aaPQ(PP,Q为非非终结符且且Q中含),应把把Folllow(UU)中的全全部内容传传送到Foolloww(P)中中。例 文文法:SABc Aaa| Bb|Firstt集合求法法:能由非非终结符号号推出的所所有的开头头符号或可可能的,但但要求这个个开头符号号是终结符符号。如此此题A可以以推导出aa和,所所以FIRRST(AA)=aa,;同理 FFIRSTT(B)=b,;S可可以推导出出aBc,还还可以推导导出bc,还还可以推导导出c,所所以FIRRST(SS)=aa,b,ccFolloow集合的的求法:紧紧跟随其后后面的终结结符
9、号或。但文法法的识别符符号包含,在求的的时候还要要考虑到。 具体体做法是把把所有包含含你要求的的符号的产产生式都找找出来,再再看哪个有有用。 FFolloow(S)=如如求A的,产产生式:SSABcc Aaa| ,但但只有SABc 有用。跟跟随在A后后面的终结结符号是FFIRSTT(B)=b,当FFIRSTT(B)的的元素为时,跟随随在A后的的符号就是是c,所以以 Folllow(AA)=bb,c同同理Folllow(BB)=cc2.对下面面的文法 G : (1)计算这个文法的每个非终结符的 FIRST 集和 FOLLOW 集。(2) 证明这个方法是 LL(1) 的。(3) 构造它的预测分析表
10、。解:(1)计计算这个文文法的每个个非终结符符的FIRRST集和和FOLLLOW集。 FIRSTT集合有: FIRSTT(E)=FIRSST(T)=FIRRST(FF)=FIIRST(P)=(,a,b,; FIRSTT(E)=+, FIRSTT(T)=FIRSST(F)=FIRRST(PP)=(,a,bb,; FIRSTT(T)=FIRRST(TT)=(,aa,b,; FIRSTT(F)=FIRSST(P)=(,a,b,; FIRSTT(F)=FIRRST(PP)=*,; FIRSTT(P)=(,aa,b,; FOLLOOW集合有有: FOLLOOW(E)=),#; FOLLOOW(E)=FO
11、OLLOWW(E)=),#; FOLLOOW(T)=FIRRST(EE)FOLLLOW(EE)=+,),#;/不包含 FOLLOOW(T)=FOOLLOWW(T)=FIRSST(E)FOLLLOW(EE)=+,),#; FOLLOOW(F)=FIRRST(TT)FOLLLOW(TT)=(,a,bb,+,),#;/不包含 FOLLOOW(F)=FOOLLOWW(F)=FIRSST(T)FOLLLOW(TT)=(,a,bb,+,),#; FOLLOOW(P)=FIRRST(FF)FOLLLOW(FF)=*,(,aa,b,+,),#;/不包包含 (2)证明明这个方法法是LL(1)的。 各产生式的的S
12、ELEECT集合合有: SELECCT(E-TE)=FIIRST(T)=(,a,b,; SELECCT(E-+EE)=+; SELECCT(E-)=FOLLLOW(E/)=),# SELECCT(T-FT)=FIIRST(F)=(,a,b,; SELECCT(T-T)=FIRRST(TT)=(,a,bb,; SELECCT(T-)=FOLLLOW(T/)=+,),#; SELECCT(F-PF)=FIIRST(P)=(,a,b,; SELECCT(F-*FF)=*; SELECCT(F-)=FOLLLOW(F)=(,aa,b,+,),#; SELECCT(P-(E)=( SELECCT(P-a
13、)=a SELECCT(P-b)=b SELECCT(P-)= 可见,相同同左部产生生式的SEELECTT集的交集集均为空,所所以文法GGE是是LL(11)文法。 (3)构造造它的预测测分析表。 文法GEE的预测测分析表如如下: 【题 3】考虑下面的的文法:(1) 求出所有语法变量的FIRSTOP集合和LASTOP集合。(2) 构造文法的算符优先关系表,并判断是否为算符优先文法。(3) 计算文法的算符优先函数。(4) 给出表达式和id*(id+id)的算符优先分析过程。解答:(1) 所有语法变变量的FIIRSTOOP集合和和LASTTOP集合合如下:(2)文法法的算符优优先关系表表算符关 系算
14、 符+-*/()id+-*/()id因为文法中中任意两个个终结符之之间只存在在一种关系系,因此该该文法为算算符优先文文法。(3) 文法的算符符优先函数数优先函数算符+-*/()id#(栈内优先先函数)22440440(栈外优先先函数)11335050(4) 表达式的算算符优先分分析过程步骤栈输入串优先关系动作1#+#2#+#移进3#F+#用归约4#F+#移进+5#F+#移进6#F+F#+#用归约7#E#+#用归约表达式idd*(idd+id)的算符优优先分析过过程步骤栈S优先关系当前输入字字符R输入字符串串0#id*(id+id)#1#id*(id+iid)#2#N*(id+iid)#3#N*
15、(id+idd)#4#N*(id+id)#5#N*(iid+id)#6#N*(NN+id)#7#N*(NN+id)#8#N*(NN+id)#9#N*(NN+N)#10#N*(NN)#11#N*(NN)#12#N*N#13#N停止#2.已知文文法 GS 为为: S-a|(TT) T- TT,S|SS (1) 计计算 GS 的的 FIRRSTVTT 和 LLASTVVT 。 (2) 构构造 GS 的的算符优先先关系表并并说明 GGS 是否为算符优先先文法。 (3) 计计算 GS 的的优先函数数。 (4) 给给出输入串串 (a,a)# 的算符优优先分析过过程。解:(1)各各符号的FFIRSTTVT和
16、LLASTVVT:(2)算符符优先关系系表: 因为文法中中任意两个个终结符之之间只存在在一种关系系,因此该该文法为算算符优先文文法。(3)对应应的算符优优先函数为为: (4)句子子(a,aa)#分析析过程如下下: 知识点 FIRSTTVT 及及 LASSTVT 求法 构造集合 FIRSSTVT ( P )的两条条规则。 (i)若有有产生式 Pa ,或 PQa ,则 a FIRRSTVTT ( PP )。 (ii)若若 a FIRRSTVTT ( PP ),且且有产生式式 PQ ,则 a FIRRSTVTT ( PP )。 构造集合 FIRSSTVT ( P )的两条条规则 (i)有产产生式Pa
17、,或或PaQ,则则aLASTTVT(PP)。(ii)若若 a LASSTVT ( Q ),且有有产生式 PQ ,则 a FIRRSTVTT ( PP )。【题 4】1. 令文法G:S BB B aB B b 判判断该文法法是否LRR(1)文文法,若是是构造LRR(1)分分析表。解1)将文文法G拓广广为G:(0)SSS (11)SBB (2)BBAb (3)BBb 2)求出GG的非终终结符的FFOLLOOW和FIIRST集集AFOLLOOW(A)FIRSTT(A)S#a,bS#a,bBa,b,#a,b3)构造个个G的LLR(1)的项目集集族及GOO函数I5:SBB.,#I2:SB.B,# B.A
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 编译原理 编译 原理 期末 复习资料 汇总 1826
限制150内