[工学]编译原理——第五章-1.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文档。上传文档
查看更多
[工学]编译原理——第五章-1

编译方法 中国人民大学信息学院 陈文萍 第五章 语法分析——自下而上分析 5.1 自下而上分析基本问题 5.2算符优先分析 5.3 LR 分析法 5.4 语法分析器的自动产生工具 YACC 5.1 自下而上分析的基本问题 自下而上语法分析 试图将一个字符串反向归约至开始符号 (推倒的逆过程) 比自上而下语法分析更有效率,对语法的限制更少 移进-归约过程 移进:将一个终结符推进栈 归约:当栈顶形成某个产生式的候选式时,把这些符号从栈中弹出,把产生式的左部符号压入栈 文法G[S]: (1) S → aAcBe (2) A → b (3) A → Ab (4) B → d b b c d e A 3) #ab bcde# 归约(A→b) A 5) #aAb cde# 归约(A→Ab) B 8) # aAcd e# 归约(B→d) S 10) #aAcBe # 归约(S→aAcBe) 分析符号串abbcde是否G[S]的句子 步骤 符号栈 输入符号串 动作 1) # abbcde# 移进 2) #a bbcde# 移进 4) #aA bcde# 移进 6) #aA cde# 移进 7) #aAc de# 移进 9) #aAcB e# 移进 11) #S # 接受 对输入串abbcde#的移进-规约分析过程 S ? aAcBe ? aAcde ? aAbcde ? abbcde a 规范归约 短语、直接短语、句柄的定义: 至少经一步推导 文法G[S],S αAδ,且A β则称β是句型αβδ相对于非终结符A的短语。(短语是句型的一部分) 若有A ? β,则称β 是句型α β δ相对于该规则A → β的直接短语。 经一步推导 一个句型的最左直接短语称为该句型的句柄。 规范归约: 设α是文法G的一个句子,称序列αn ,αn-1,…, α0 是α的一个规范规约,如果此序列满足: αn = α α0 为文法的开始符,即α0 = S 对任何i,0i=n, αi-1 是对αi,把句柄 替换为相应产生式的左部符号而得到的 自顶向下最右推导的逆过程 规范推导:最右推导 规范句型:规范推导所得的句型 短语举例: 主谓宾:同学 参加 会议 句——》主谓宾 主——》同学 谓——》参加 宾——》会议 同学,参加,会议分别为句的短语 但是如“同参”不是短语 规范归约 例 句型 归约规则 abbcde (2) A → b aAbcde (3) A → Ab aAcde (4) B → d aAcBe (1)S → aAcBe S 从语法树角度看句柄: 最左子树端末结的自左至右排列,这棵子树只有而且必须有父子两代 句柄=最左边的子树的父子子树 (不能是光的叶子节点成为的单子树) S a A c B e A b b S a A c B e A b S d d a A c B e d 规约T ? int T + int | 移进 T + | int 移进 int | * int + int 移进 int * | int + int 移进 |int * int + int E | 规约E ? T + E T + E | 规约E ? T T + T | 移进 T | + int 规约T ? int * T int * T | + int 规约 T ? int int * int | + int 文法G[E]: E ? T + E | T T ? int * T | int | (E) E T E + int * int T int T 移进-归约过程 (1) + int * int int ? |int * int + int 文法G[E]: E ? T + E | T T ? int * T | int | (E) 移进-归约过程(2) + int * int int ? int | * int + int |int * int + int 文法G[E]: E

文档评论(0)

ipbohn97 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档