- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第五章 自顶向下语法分析方法 高晓雷 gaoxl@dgut.edu.cn 学习目标 确定的自顶向下分析方法虽对文法有一定的限制,但由于实现方法简单、直观,便于手工构造或自动生成语法分析器,因而仍是目前常用的方法之一。要求通过本章的学习后达到以下要求: 能够对一个给定的文法判断是否是LL(1)文法;能构造预测分析表;能用预测分析方法判断给定的输入符号串是否是该文法的句子; 能对某些非LL(1)文法做等价变换: ① 消除左递归 ② 提取左公共因子可能会变成LL(1)文法。这样可扩大自顶向下分析方法的应用。 了解非确定的自顶向下分析方法 学习指南 确定的自顶向下分析由于实现方法简单、直观、便于手工构造,因此,仍是目前常用的语法分析方法之一,尤其对小型编译器的实现较为适合。对初学编译技术者也较容易入门。确定的自顶向下分析要求文法是LL(1)的,所以,能否用确定的自顶向下分析方法构造语法分析器,首先必须对所给文法进行判断。由此构造 LL(1) 分析器的关键问题是对文法的LL(1)判别。而判断 LL(1)文法时用到文法符号串的开始符号集合(FIRST集)和非终结符的后跟符号集合(FOLLOW集)的计算。本章的学习要求学员对给定的文法能熟练、准确地计算出产生式右部符号串的开始符号集合和每个非终结符的后跟符号集合,只有这两个集合的元素计算准确无误,才能对LL(1)文法的判断得出正确结论,从而正确构造LL(1)分析表。对非LL(1)文法的等价变换特别要注意的是:消除了左递归、提取了左公共因子后不一定就能满足LL(1)文法的条件。 难重点 语法分析是编译程序的核心部分。语法分析的作用是识别由词法分析给出的单词符号序列是否是给定文法的正确句子(程序),目前语法分析常用的方法有自顶向下(自上而下)分析和自底向上(自下而上)分析两大类。本章将主要介绍确定的自顶向下分析思想和对文法的要求。确定的自顶向下分析要求文法满足LL(1)文法。本章主要介绍内容为: ◇ LL(1) 文法的定义和判别 ◇ 非LL(1)文法的等价变换 ◇ 确定的自顶向下分析方法 ◇ 递归子程序法(已在第2章应用本章不重复) ◇ 预测分析方法 难重点 重点: ① LL(1)文法的定义和判别 ② 非LL(1)文法的等价变换 ③ 预测分析方法难点: 对一个文法如何判断是否是LL(1)文法,由于在判断 LL(1)文法时用到文法符号串的开始符号集合(FIRST集)和非终结符后跟符号集合(FOLLOW集)的计算,而一般学员往往因概念不清或不够细心对这两个集合的计算常常出错,导致判断和分析结果的错误。 知识结构 第五章 自顶向下语法分析方法 5.1 确定的自顶向下语法分析思想 5.2 LL(1)文法的判别 5.3 某些非LL(1)文法到LL(1)文法的等价变换 5.4 不确定的自顶向下语法分析思想 5.5 确定的自顶向下语法分析思想 本章内容 5.1 确定的自顶向下语法分析思想 5.2 LL(1)文法的判别 5.3 某些非LL(1)文法到LL(1)文法的等价变换 5.4 不确定的自顶向下语法分析思想 5.5 确定的自顶向下语法分析思想 5.1 确定的自顶向下分析思想 确定的自顶向下分析方法,首先要解决从某文法的开始符号出发,对给定的输入符号串如何根据当前的输入符号(单词符号)唯一地确定选用哪个产生式替换相应非终结符往下推导,或构造一棵相应的语法树,若能够推导出给定的输入符号串,或能构造出语法树其末端结点以从左向右的顺序连接正好为给定的输入符号串,则所给的输入符号串为该文法的句子。 现举例说明: 例 5.1 若有文法G1[S]: S → pA |qB A →cAd|a B →d B |c识别输入串w= pccadd是否是G1[S]的句子 试探推导过程: S? pA ? pcAd ? pccAdd ? pccadd试探成功。 相应语法树为图5.1。 图 5.1 确定的自顶向下语 法分析树(一) 例 5.1 文法有以下两个特点: ① 每个产生式的右部都由终结符号开始。② 如果两个产生式有相同的左部,那么它们的右部由不同的终结符开始。 对于这样的文法显然在推导过程中完全可以根据当前的输入符号决定选择哪个产生式往下推导,因此分析过程是唯一确定的。 例 5.2? 若有文法G2[S]: S → Ap |Bq A →a|cA B →b|dB 识别输入串w=ccap是否是G2[S]的句子,那么试探推出输入串的推导过程为 : S ? Ap ? cAp ? ccAp ? ccap 试探推导成功。 例5.2 文法的特点是: ① 产生式的右部不
您可能关注的文档
最近下载
- 标准化管理手册2021年版(施工线路).docx VIP
- 我爱宁波小学三年级教案.doc VIP
- 石油产品分析(第三版)全套PPT课件.pptx
- 2025年四川省中科执业药师继续教育答案《黄帝内经》与岐黄之术.pdf VIP
- 2024-2025学年初中信息技术(信息科技)人教版(2024)七年级全一册教学设计合集.docx
- 全国现场流行病学调查职业技能竞赛理论考试题库(浓缩600题).doc VIP
- 程序设计类课程“闯关式”数字化教学设计与实践.docx VIP
- 第5单元 探索1 互联网安全风险及其产生原因 教学课件.ppt VIP
- 2022玻璃结构工程技术规程.docx VIP
- (高清版)DB33∕T 1217-2020 屋面工程质量验收检查用表标准 .pdf VIP
原创力文档


文档评论(0)