语法分析自底向上的分析

语法分析自底向上的分析

ID:44667377

大小:351.00 KB

页数:7页

时间:2019-10-24

语法分析自底向上的分析_第1页
语法分析自底向上的分析_第2页
语法分析自底向上的分析_第3页
语法分析自底向上的分析_第4页
语法分析自底向上的分析_第5页
资源描述:

《语法分析自底向上的分析》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、语法分析——自底向上的分析重点与难点重点:自底向上分析的基本思想,算符优先分析法的基本思想,简单算符优先分析法。LR分析器的基本构造思想,LR分析算法,规范句型活前缀及其识别器一一DFA,LR(O)分析表的构造,SLR(1)分析表的构造。难点:求FIRSTOP和LASTOP,算符优先关系的确定,算符优先分析表的构造,素短语与最左素短语的概念。规范句型活前缀,LR(0)项目集闭包与项目集规范族,它们与句柄识别的关系,活前缀与句柄的关系。基本要求掌握自底向上分析的基本思想、移进规约、分析器的基本结构,分析器的四种

2、动作,移进归约冲突,归约归约冲突。掌握算符优先分析方法;熟练掌握LR分析器、SLR(l)分析。了解LR⑴分析、LALR(l)分析。例题解析例1S-*aS

3、bS

4、a(1)构造该文法的LR(O)项目集规范族(2)构造识别该文法所产生的活前缀的DFAo(3)构造其SLR分析表,并判断该文法是否是SLR(l)文法。【解】解题思路构造LR(0)项目集规范族,有两种方法:一种是利用有限白动机來构造,另一种是利用函数CLOSURE和GO來构造。木题采取笫2种方法,通过计算函数CLOSURE和GO得到文法的LR(O)项H集规

5、范族,而GO函数则把LR(O)项H集规范族连成一个识别该文法所产生的活前缀的DFAo解答(1)将文法G(S)拓广为G(S,):(O)S'->s(l)S-aS⑵S->bS(3)S-*a构造该文法的LR(0)项目集规范族:I。二CLOSURE({S->・S})二{S'-・S,S->・aS,S-・bS,S-*・a}Ii=G0(Io,a)二CLOSURE({S—a・S,S—a•})={S-*a・S,S-*a•,S—•aS,S—・bS,S-*・a}I2二GOdo,b)二CLOSURE({S-b・S})={S-b・S,S

6、-・aS,S->・bS,S-・a}I3二GO(Io,S)二CLOSURE({S'-S・})二{S'-S・}GO仃】,a)=CLOSURE({S->a・S,S-*a・})二hG0(I2,b)二CLOSURE({S-b•S})=I2I.i=GO(Ii,S)二CLOSURE({S-aS・})={S—aS・}GO仃2,a)二CLOSURE({S->a・S,S->a・})二1】G0(I2,b)=CLOSURE({S->b•S})=I2I5=G0(I2,S)二CLOSURE({S-bS•})={S-bS•}所以,项目集I

7、。,II,12,I3,Il和Is构成了该文法的LR(O)项目集规范族。(1)我们用GO函数把LR(O)项

8、=

9、集规范族连成一个识别该文法所产生的活前缀的DFA如图1所示。L图1识别活前缀的DFA(3)构造其SLR分析表。表1SLR分析表ACTIONGOTO状态ab#S0SIS231SIS2r342SIS253acc4rl5r2注意到状态L存在“移进-归纳”冲突,计算S的FOLLOW集合:FOLLOW(S)={#}可以采用SLR冲突消解法,得到表5.1所列的SLR分析表。从分析表可以看出,表中没有冲突项,所以该

10、文法是SLR(l)文法。例2构造识别下列文法的所有活前缀的DFAS-A

11、BA-*aAcA-*aBbBdB-b【解】(1)构造推广文法0)S'->s1)S-*A2)S-*B3)A-*aAc4)A->a5)B-bBd6)B-*b(2)识别该拓广文法的所有规范句型活前缀的DM项目集规范族0{10,11,12,13,14,15,16,17,18,19}10={S'->.S,S->.A,S->.B,A->.aAc,A->.a,B->.bBd,B->.b}Il二{S'-*S.}12=(S->A.)13二(S-B.)T4=

12、(A-*a.Ac,A-*a.,A~*.aAcA-*.a)15=(BfBd,B—b・,BfbBd,Bfb)16=(A-*aA.c)17=(B—bB.d)18=(A-^aAc.)19=(B-^bBd.)(1)识别该拓广文法的所有规范句型活前缀的DFA例3给定文法G:S-(L

13、aL-S,L

14、)(1)构造拓广文法及拓广文法的LR(0)项目集规范族(状态集合)o(2)构造这个文法的SLR(1)分析表,【解】(1)构造拓广文法S'-SS-(L2)S-*a3)L-S,L4)L)拓广文法的LR(0)项H集规范族(状态集介)0

15、)S,fs011)S一(L0,2,7232)S-*a0,2,763)LS,L2,74784)L-)2,75(2)求各非终结符的FISRT集和FOLLOW集:FIRST(S)={(,a)FIRST(L)={a}uFIRST(S)={(,),a}FOLLOW(S)={,,,,#}FOLLOW(L)=FOLLOW(S)={',',#}G的SLR(l)分析表:(a)#SL0s2s611acc2S2s6s54

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。