- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章自顶向下的语法分析-递归下降
生成语法树的例子 Z ( ) { if (token == a) { match(a); B( ); match(d); } else {error(); } } *ParseTree T = BuildRoot(Z); AddOneSon(T, A); A = BuildOneNode(a); AddOneSon(T, BB); BB= AddOneSon(T, D); D = BuildOneNode(d); return T; SetNum(T, 3); return nil; B ( ) { case token of d: match(d);break; c: match(c); break; b:{ match(b); B( ); break;} other: error(); } 生成语法树的例子 作 业 G = {VT, VN, S, P} VT = {- , (, ), id} VN = {E, ET, V, VT} S = E P = { E ? -E ET ? ? E ? (E) V ? id VT E ? V ET VT ? (E) ET ? -E VT ? ? } 为文法 G写一个递归下降程序. 第四章复习 自顶向下语法分析方法的思想 自顶向下语法分析方法的条件 First,Follow,Predict集的定义和含义 递归下降方法 -计算Predict集,写递归下降程序 LL(1)语法分析方法 -计算Predict集,构造LL(1)分析表,句子分析过程。 * * * * * * * * * 编译程序原理与实现 张晶 2011.3 语法分析部分知识关系图 开发语法分析程序 语法定义 基于 上下文无关文法 使用 实现 自顶向下 自底向上 第四章 自顶向下的语法分析 4.1 自顶向下语法分析概述 4.2 三个重要的集合 4.3 递归下降语法分析方法 4.4 LL(1)语法分析方法 4.1自顶向下语法分析概述 问题 给定程序语言语法的上下文无关文法定义 检查所给程序(token序列)是否满足该文法 生成程序的抽象语法树或报告语法错误 主要思想 读入源程序(token序列) 由开始符出发 尽可能找到一个合适的推导,使之恰好生成源程序 自顶向下分析例 P: (1) Z ? aBeA (2) A ? Bc (3) B ? d (4) B ? bB (5) B ? ? a b e c 自顶向下分析过程是从文法开始符出发,为所给输入串构造最左推导的过程。 句型 输入 动作 Z abec 推导(1) abec aBeA 匹配(a) bec BeA 推导(4) bec bBeA 匹配(b) ec BeA 推导(5) ec eA 匹配(e) c A 推导(2) c Bc 推导(5) 匹配(c) c c 成功 自顶向下分析例 P: (1) Z ? aBeA (2) A ? Bc (3) B ? d (4) B ? bB (5) B ? ? a b e c 自顶向下分析过程也是自上而下为所给句子建立语法树的过程。 Z a B e b B ? A c B ? 4.1自顶向下语法分析概述 关键问题: 对句型中的非终极符选择合适的产生式进行下一步推导; 选择最左非终极符进行替换更合适,便于处理; 选择产生式时,参考输入的token序列信息更有效,否则有可能产生回溯; 向前看几个输入符号? 对一般的程序设计语言而言,向前看1个输入符号,即只看当前token(向前看一个token)就足够了 为产生式A? ?计算Predict set (预测符集) {a | S ?+ ?A? ? ? ? ? ? * ? a ?’}, 其中 ??VT*, S 是开始符. 4.2 三个重要的集合 Predict(A? ?) 面向产生式定义的,对产生式可能推导出的串进行预测,作为对非终极符替换时选择产生式的依据; First(?) 面向符号串(产生式的右部)定义的,当??First(?)时,直接作为产生式(A ? ?)的预测符; Foll
您可能关注的文档
最近下载
- 湖南省名校联考联合体2025-2026学年高一上学期10月联考语文试卷含答案.pdf VIP
- 部分常用岩土物理力学参数经验数值.doc
- 中南大学网校马克思主义基本原理考试.doc VIP
- 浙江省精诚联盟2025-2026学年高一上学期10月联考生物试卷含答案.docx VIP
- 2025-2026学年广东省广州市第一中学高一上学期10月月考数学试卷含详解.docx VIP
- 抖音爸爸博主“新父职”的数字实践研究_.pdf VIP
- 演示文稿青春期生长发育.ppt VIP
- 2023年中南财经政法大学公共课《马克思主义基本原理概论》期末试卷B(有答案).docx VIP
- 2024-2025学年广东省珠海市文园中学九年级(下)开学物理试卷.docx VIP
- 保健品营销策划.pdf VIP
文档评论(0)