语法分析自下而上分析.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

编译原理假定输入串为i*i+i,LR分析器的工作过程:步骤 状态 符号 输入串(5) 027 #T* i+i#(6) 0275 #T*i +i#(7) 02710 #T*F +i#(8) 02 #T +i#(9) 01 #E +i#(10) 016 #E+ i#+iTF*TFiE编译原理步骤 状态 符号 输入串(10) 016 #E+ i#(11) 0165 #E+i #(12) 0163 #E+F #(13) 0169 #E+T #(14) 01 #E #(15)接受+iTF*TFiEiTFE编译原理定义:对于一个文法,如果能够构造一张分析表,使得它的每个入口均是唯一确定的,则这个文法就称为LR文法。定义:一个文法,如果能用一个每步顶多向前检查k个输入符号的LR分析器进行分析,则这个文法就称为LR(k)文法.非LR结构LR文法不是二义的,二义文法肯定不会是LR的。S?iCtS|iCtSeS 栈输入…iCtSe…#编译原理5.3.2LR(0)项目集族和LR(0)分析表的构造假定?是文法G的一个句子,我们称序列?n,?n-1,?,?0是的一个规范归约,如果此序列满足:1?n=?2?0为文法的开始符号,即?0=S3对任何i,0?i?n,?i-1是从?i经把句柄替换成为相应产生式左部符号而得到的。编译原理5.3.2LR(0)项目集族和LR(0)分析表的构造规范归约过程中栈内的符号串和扫描剩下的输入符号串构成了一个规范句型栈内的如果出现句柄,句柄一定在栈的顶部X???a?句柄?句???柄???柄句???a????柄句??a???栈内永远不会出现句柄之后的符号!编译原理5.3.2LR(0)项目集族和LR(0)分析表的构造字的前缀:是指字的任意首部,如字abc的前缀有?,a,ab,abc活前缀:是指规范句型的一个前缀,这种前缀不含句柄之后的任何符号。即,对于规范句型???,?为句柄,如果??=u1u2…ur,则符号串u1u2…ui(1?i?r)是???的活前缀。(?必为终结符串)对于一个文法G,可以构造一个DFA,它能识别G的所有活前缀.编译原理指导思想——目标驱动踢足球“如果你不知道怎样踢球,就往球门方向踢”——施拉普纳LR分析“如果你不知道怎样分析,就保证栈中总是活前缀”一个语言都有哪些活前缀?那些字符串是活前缀?能不能构造一个DFA来识别活前缀?编译原理文法G的每个产生式的右部添加一个圆点称为G的LR(0)项目如:A?XYZ有四个项目:A?.XYZ A?X.YZA?XY.ZA?XYZ.A??.称为归约项目归约项目S’??.称为接受项目A??.a?(a?VT)称为移进项目A??.B?(B?VN)称为待约项目.编译原理文法G(S?)S?→EE→aA|bBA→cA|dB→cB|d该文法的项目有:1.S?→·E 2.S?→E· 3.E→·aA4.E→a·A 5.E→aA· 6.A→·cA7.A→c·A 8.A→cA· 9.A→·d10.A→d· 11.E→·bB 12.E→b·B13.E→bB· 14.B→·cB 15.B→c·B16.B→cB· 17.B→·d 18.B→d·编译原理构造识别文法所有活前缀的NFA方法1.若状态i为X?X1…Xi-1.Xi…Xn,状态j为X?X1…Xi-1Xi.Xi+1…Xn,则从状态i画一条标志为Xi的有向边到状态j;2.若状态i为X??.A?,A为非终结符,则从状态i画一条?边到所有状态A?.?。把识别文法所有活前缀的NFA确定化。编译原理678910453121112131415161817???????a???AE

文档评论(0)

182****1276 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档