- 1、本文档共77页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第四章:语法分析 第3章主要内容回顾 1、三型语言的等价描述 1) 正规文法RG、正规表达式RE、有限自动机FA(DFA、NFA 、ε-NFA) 2) 正规文法RG?正规表达式 RE 3) 正规表达式RE?正规文法RG 4) 正规文法RG?有限自动机FA 正规表达式r →非确定的有限自动机FA → 确定的有限自动机DFA→ 最小化的DFA 第四章 语法分析 语法分析概述 自顶向下分析方法概述 LL(1)分析方法(预测分析方法) 递归子程序分析方法 算符优先分析方法 LR分析方法 重要概念回顾 推导: αAβ?αγβ (依据:A→γ) 最左(Left-most)推导——最左分析 左句型 最左推导对应最右归约 最右(Right-most)推导——最右分析 规范推导、规范句型(右句型) 最右推导对应最左归约(规范归约) 二义性(先天二义性语言、二义性文法) 4.1 语法分析概述 语法分析的地位:是编译程序的核心部分。 语法分析器的任务:识别由词法分析给出的单词 序列是否是给定(上下文无关)文法的正确句子。 语法分析的理论基础:上下文无关文法和下推自 动机。 语法分析器的输入:单词序列。 语法分析器的输出:是合法的句子,输出其语法 树,否则,输出出错位置和性质。 语法分析的方式: 自顶向下(递归下降、预测分析) 自底向上(算符优先、LR分析器) 4.1 语法分析概述 下推自动机PDA模型: 4.2 自顶向下语法分析概述 基本思想:从推导的角度看是由识别符号出发,不断建立直接推导,试图构造一个推导序列,最终由它推导出与输入符号串相同的符号串。从语法树的角度看,自顶向下分析过程是以识别符号为根结点,试图向下构造一棵语法树,使其末端结点符号串正好与输入符号串相同。 遇到的问题: 无限循环:当文法中出现左递归时(存在非终结符号U, 对于它有U→U…或U ?+U …),会使分析过 程陷入无限循环。 4.2 自顶向下语法分析概述 遇到的问题: 回溯:如果对于同一个非终结符号,存在若干个规则右部 U→x1|x2|…|xn 在推导过程中要对U展开,那么按哪一个规则右部 展开呢?即如何确定替换U的xj。如果选择错误, 将导致回溯。 解决方法: 消除左递归 避免回溯(限制文法的右部必须满足其SELECT()不相交) 主要分析方法:递归子程序法、LL(1)方法(即预测分析法)等。 4.2 自顶向下语法分析概述 例4-1:给定上下文无关文法如下,试判断id+id*id是否是该文法所生成的句子。 文法G[E]: E → T E’ E’→ + T E’|ε T → F T’ T’→ * F T’|ε F → ( E )|id 为其生成的最左推导和分析树分别如下: 4.2 自顶向下语法分析概述 最左推导:E ?TE’ E →TE’ ?FT’E’ T →FT’ ?idT’E’ F →id ?idE’ T’→ε ?id+TE’ E’→+TE’ ?id+FT’E’ T →FT’ ?id+idT’E’ F →id ?id+id*FT’E’ T’→*FT’ ?id+id*idT’E’ F →id ?id+id*idE’ T’→ε ?id+id*id E’→ε 4.2 自顶向下语法分析概述 4.3 LL(1)分析方法 基本思想:从左到右扫描源程序,同时从识别符号开始生成句子的最左推导,并且只要向前看一个输入符号,便能确定当前应选择的产生式,由此而得名LL(1)分析方法。当需要向前查看k个输入符号才能唯一确定当前应选择的规则时,则称为LL(k)分析方法。 举例:例4-2,给定文法G[S]如下: ①S→dSA ②S→bAc ③A→dA ④A→c 判断dbccdc是否是该文法所生成的句子。 4.3 LL(1)分析方法 最左推
您可能关注的文档
- ;2-5含受控源的电路分析.ppt
- ;2行列式的性质.ppt
- ;3醇的化学性质.ppt
- ;5-8计算机分析电路举例.ppt
- [课件]浅水洼里的小鱼2.ppt
- “看清”蛋白质生物大分子质谱电离技术的.ppt
- 《畜产品加工学》教案.doc
- 《过程设备设计基础》教案2—压力容器应力分析.doc
- 《碱的性质研究》(第一课时)课程标准解读.doc
- 《小学试行“小班化”课堂教学的理论与实践研究》子课题研究.ppt
- 2025年唐山市市直事业单位招聘277人笔试模拟试题含答案详解.docx
- 2023年陕西省渭南市澄城县交道镇招聘社区工作者真题及答案详解1套.docx
- 2025年唐山市市直事业单位招聘277人笔试模拟试题带答案详解.docx
- 2022年湖北省宜昌市中考化学真题(原卷版).pdf
- 2023年陕西省渭南市澄城县交道镇招聘社区工作者真题及答案详解一套.docx
- 2023年陕西省渭南市潼关县秦东镇招聘社区工作者真题附答案详解.docx
- 2023年陕西省渭南市潼关县高桥乡招聘社区工作者真题及参考答案详解1套.docx
- 2023年陕西省渭南市潼关县秦东镇招聘社区工作者真题带答案详解.docx
- 2023年陕西省渭南市潼关县桐峪镇招聘社区工作者真题附答案详解.docx
- 2025年唐山市市直事业单位招聘277人笔试模拟试题及参考答案详解.docx
文档评论(0)