ImageVerifierCode 换一换
格式:PPTX , 页数:29 ,大小:197.11KB ,
资源ID:4185324      下载积分:5 金币
验证码下载
登录下载
邮箱/手机:
验证码: 获取验证码
温馨提示:
支付成功后,系统会自动生成账号(用户名为邮箱或者手机号,密码是验证码),方便下次登录下载和查询订单;
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

开通VIP
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.zixin.com.cn/docdown/4185324.html】到电脑端继续下载(重复下载【60天内】不扣币)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  
声明  |  会员权益     获赠5币     写作写作

1、填表:    下载求助     索取发票    退款申请
2、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
3、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
4、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
5、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【天****】。
6、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
7、本文档遇到问题,请及时私信或留言给本站上传会员【天****】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。

注意事项

本文(算符优先分析法.pptx)为本站上传会员【天****】主动上传,咨信网仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知咨信网(发送邮件至1219186828@qq.com、拔打电话4008-655-100或【 微信客服】、【 QQ客服】),核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载【60天内】不扣币。 服务填表

算符优先分析法.pptx

1、 1、自下而上分析事例:设文法G为(1)SaAcBe (2)Ab (3)AAb (4)Bd试判断语句abbcde是否是该文法的合法句子?怎样实现归约过程:借鉴LL(1)分析法的体系结构步骤栈内输入串动作0#abbcde#1#a bbcde#移进2#ab bcde#移进3#aA bcde#归约4#aAb cde#移进5#aA cde#归约6#aAc de#移进7#aAcd e#移进8#aAcB e#归约9#aAcBe#移进10#S#归约11识别成功 2、自下而上分析法的核心问题:1)存在移进-归约冲突;2)存在归约-归约冲突;核心问题是寻找句型中的归约串进行归约。自下而上分析法 一、算符优先分析

2、法:1、算符优先分析法的思想:对于文法G:EE+E|E-E|E*E|E/E|(E)|i,分析i+i-i*(i+i)规范推导:EE*EE*(E)E*(E+E)E*(E+i)E*(i+i)E+E*(i+i)E+E-E*(i+i)E+E-i*(i+i)E+i-i*(i+i)i+i-i*(i+i)第5章 优先分析法逆过程是规范归约另外一种推导:EE-EE-E*EE-E*(E)E-E*(E+E)E-E*(E+i)E-E*(i+i)E-i*(i+i)E+E-i*(i+i)E+i-i*(i+i)i+i-i*(i+i)第5章 优先分析法算符优先分析法的基本思想:定义终结符之间的优先关系,借助终结符之间的优先关

3、系确定归约对象,进行自下而上分析。比较相邻的2个算符的优先级 2种推导过程对于8+7-5*(3+2)的计算结果2、算符优先分析技术的引进:必须给出文法中两个可能在句子中相继出现的终结符之间的优先关系。(1)相继出现:在句子中若有“ab”或“aQb”.(a,bT,QN),则称a,b相继出现。(2)终结符号对优先关系的存储:优先关系表是一个矩阵M(a,b),aT,bT,矩阵行数、列数都为|+1。如:对于文法G:EE+E|E-E|E*E|E/E|(E)|i,对应的优先矩阵为:矩阵元素M(a,b)表示a在前,b在后时,a与b之间的优先关系。矩阵元素M(a,b)的取值:,。i+i-i*(i+i)E+E-

4、Ep对文法EE+E|E-E|E*E|E/E|(E)|i+-*/()i#+-*/()i#如何获得一般的文法的优先分析表?#优先级低于其右部符号源程序中不会出现)(的情形如何获得一般的文法的优先分析表?3、优先表的构造方法:算符文法:给定上下文无关文法G=(VN,VT,P,S)中不存在形如ABC的产生式,则称之为算符文法(OGOperator Grammar)(其中A,B,CN)即:如果文法中不存在具有相邻非终结符的产生式,则称为算符文法。算符优先文法:设文法G是一个不包含有空串产生式的算符文法,如果该文法中的任何终结符号对a,b之间,在三种关系中最多只有一种成立,则称该文法为算符优先文法。(1)

5、求文法中每个非终结符P的首终结符集合FIRSTVT(P)定义:FIRSTVT(P)=a|P+a或者P+Qa,a T,P,Q N 复习:FIRST()=a|*a,aT 构造FIRSTVT(P)的算法:1)若有产生式Pa或者PQa,则aFIRSTVT(P)2)若有产生式PQ,则FIRSTVT(Q)FIRSTVT(P)例如:下述文法 S#S#SD(R)RR;P|P PS|i Di 求其每个非终结符P的FIRSTVT(P)FIRSTVT(S)=#FIRSTVT(S)=FIRSTVT(R)=FIRSTVT(P)=(,i FIRSTVT(D)=i(FIRSTVT(D)=(,i;FIRSTVT(P)=;,(

6、,i (2)求文法中每个非终结符P的尾终结符集合LASTVT(P)定义:LASTVT(P)=a|p+a或者P+aQ,a T,P,Q N 复习:FOLLOW(A)=a|S*Aa,aT 构造LASTVT(P)的算法:1)若有产生式Pa或者PaQ,则aLASTVT(P)2)若有产生式PQ,则LASTVT(Q)LASTVT(P)例如:下述文法 S#S#SD(R)RR;P|P PS|i Di 求其每个非终结符P的LASTVT(P)LASTVT(S)=#LASTVT(S)=)LASTVT(R)=LASTVT(P)=LASTVT(D)=i;LASTVT(P)=;,i,)iLASTVT(S)=i,)(3)构造

7、算符优先表:用产生式求出ab的符号对:方法:对形如Pab或PaQb的产生式,有ab(其中a,b T,P,Q N)利用构造的FIRSTVT(P)求出ab的符号对:方法:对形如PaR的产生式,若有bFIRSTVT(R),则ab 利用构造的LASTVT(P)求出a b的符号对:方法:对形如PRb的产生式,若有aLASTVT(R),则a b 对于文法的每个产生式,找出其中的终结符,同一产生式中的终结符使用第一条规则,如果某终结符a后面有非终结符P;则使用第二条规则,即有aFIRSTVT(P);如果某终结符a前面有非终结符P,则使用第三条规则,即有LASTVT(P)a 例如:下述文法 S#S#SD(R)

8、RR;P|P PS|i Di 构造其算符优先分析表。FIRSTVT(S)=#FIRSTVT(S)=(,i FIRSTVT(R)=;,(,i FIRSTVT(P)=(,i FIRSTVT(D)=i ();i#();i#LASTVT(S)=#LASTVT(S)=)LASTVT(R)=;,i,)LASTVT(P)=i,)LASTVT(D)=i 文法:S#S#SD(R)RR;P|P PS|i Di 练习题:S#S#SfStS Si=E EE+T|T TPT|P P(E)|i 求此文法的算符优先表。第5章 算符优先分析法PROCEDURE OPT;/构造优先表算法 FOR 每条产生式PX1X2Xn DO

9、 FOR i:=1 TO n-1 DO BEGIN IF Xi和Xi+1均为终结符THEN 置 XiXi+1;形如P-ab第5章 算符优先分析法 IF iaQb 4、直观算法优先算法:(1)直观算符优先法的下推自动机:两个工作栈:算符栈OPTR:用于存放运算符 算量栈OPND:用于存放运算量 当前读头下符号SYM如果是运算量,则进入算量栈。当前读头下符号SYM如果是运算符,则判断是否将SYM加入算符栈:如果当前OPTR栈顶符号优先级高于SYM,则先执行当前栈顶运算;否则,将SYM加入算符栈。(2)直观算符优先法分析过程:(3)直观算符优先算法:PROCEDURE BEGIN OPND:=;OP

10、TR:=#;FLAG:=TRUE;ADVANCE;WHILE FLAG DO BEGIN IF 算符栈顶R=#AND SYM=#THEN FLAG:=false ELSE IF 算符栈顶R=(AND SYM=)THEN BEGIN上弹OPTR;ADVANCE END ELSE IF SYM运算量 THEN BEGIN 将SYM压入OPND;ADVANCE END;ELSE IF 算符栈顶RSYM THEN BEGIN SYM进栈;ADVANCE END ELSE IF 算符栈顶RSYM THEN BEGIN 上弹OPND栈顶二项d1和d2;将d1Rd2压入栈内;上弹OPTR END ELSE

11、ERROR END END;(4)直观算符优先分析法的缺点:会把错误句子当作合法句子分析 无法指出输入串的出错位置 对单目“负”和双目“减”的算术表达式不好处理。xy+zx+r()5、直观算符优先分析的若干问题:(1)二义文法不是算符优先文法。(2)算符优先分析是一种非规范规约分析。例如:E-E+T|T T-T*F|F F-(E)|i 分析句子i+i*i#规范归约分析:i+i*i#F+i*i#T+i*i#E+i*i#E+F*i#E+T*i#E+T*F#E+T#E#EE+TTFiT*FFii 算符优先分析法每一次归约时,可归约串中至少有一个终结符。算符优先分析法每一次归约时,可归约串中至少有一个

12、终结符。i+i*i#E+i*i#E+T*i#E+T*F#E+T#E#EE+TiT*Fii第5章 算符优先分析法(3)最左素短语:素短语是指至少含有一个终结符,并且除它自身之外不再含有更小的素短语。最左素短语指处于句型最左边的那个素短语。最左素短语具备三个条件:至少含有一个终结符。除自身之外不再含有更小的素短语(最小性)。在句型中具有最左性。第5章 算符优先分析法例:例:pET+E|T TF*T|F F(E)|i句型 T+F*T+i 的短语有F*T i F*T+i T+F*T+i其中的素短语为F*T iF*T为最左素短语,是被归约的对象?按照文法EE+E|E*E|(E)|i,求i+E*i+i的短

13、语和素短语 E E E E E E T T T F T FT +F *T +iT +F *T +i第5章 算符优先分析法文法:EE+E|E*E E(E)|i句型i+E*i+i的短语 E E E E E EE E E E E Ei +E *i +ii +E *i +i 最左素短语是算符优先法每一次的归约串,而句柄是规范归约每一次的归约串。i i E*i i i+E*i i+E*i+i其中的素短语为i i i(4)寻找句型最左素短语的方法:设句型的一般形式为:#N1a1 N2a2 NnanNn+1#(Ni VN,ai VT)它的最左素短语是满足下列条件的最左子串 Niai Ni+1ai+1 Nja

14、j Nj+1 其中(1)ai-1ai,(2)aiai+1aj-1aj,(3)ajaj+1 综合起来即:ai-1 aiai+1aj-1aj aj+1,例如:#E+(E)-i#(5)通用算符优先分析:算法思想:第一个终结符入栈S。把下一个输入符号读入SYM中,则比较当前栈顶第一个终结符Sj同SYM的优先关系,如果SjSYM或SjSYM,则SYM入栈S,直到当前栈顶SjSYM。#入栈 从栈顶向下寻找最左素短语:若Sk-1Sk,则k-1,直到Sk-1Sk,此时Sk到栈顶就是最左素短语。如果当前栈中已经没有最左素短语,则转第2步继续,直到归约为文法开始符号。PROCEDUR BEGIN k:=1;Sk=

15、#;REPEAT 把下一个输入符号i 读入SYM中;IF SkT THEN j:=k ELSE j:=k-1 WHILE SjSYM DO BEGIN REPEAT Q:=Sj;IF Sj-1T THEN j:=j-1 ELSE j:=j-2;UNTIL Sj Q;把Sj+1Sk归约为某个N;k:=j+1;Sk:=N END OF WHILE;IF SjSYM OR SjSYM THEN BEGIN k:=k+1;SK:=SYM END ELSE ERROR UNTIL SYM=#END分析if b then i else i#例:给定文法如下:第5章 算符优先分析法S-if Eb then

16、E else E E-E+T|TT-T*F|F F-i Eb-b构造算符优先表FIRSTVT(S)=ifFIRSTVT(E)=+,*,iFIRSTVT(T)=*,iFIRSTVT(F)=iFIRSTVT(Eb)=b第5章 算符优先分析法S-if Eb then E else E E-E+T|TT-T*F|F F-i Eb-bLASTVT(S)=else,+,*,iLASTVT(E)=+,*,iLASTVT(T)=*,iLASTVT(F)=iLASTVT(Eb)=b第5章 算符优先分析法步骤下推栈关系输入串动作0#if b then i else i#1#if b then i else i#移

17、进2#if b then i else i#移进3#if N then i else i#归约4#if N then i else i#移进5#if N then i else i#移进6#if N then N else i#归约7#if N then N else i#移进8#if N then N else i#移进9#if N then N else N#归约10#N#归约11成功LL(1)LL(1)的体系结构的体系结构 输入缓冲区输入缓冲区(符号序列符号序列)栈栈控制程序控制程序预测分析表预测分析表M输出的输出的输出的输出的产生式序列产生式序列产生式序列产生式序列返回返回返回返回作业1、给定算符文法:Sa|(T)TT,S|S(1)构造算符优先关系表;(2)该文法是否为算符优先文法?为什么?如果是算符优先文法,请给出句子(a,(a,a)的算符优先分析过程(指出堆栈和缓冲区的变化)。2、给定算符文法为:S#S#SfStS Si=E EE+T|T TPT|P P(E)|i 构造此文法的算符优先表。

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服