- 1、本文档共110页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理 第四章 语法分析—自上而下分析 第四章 语法分析—自上而下分析 本章主要介绍语法分析的处理 要进行语法分析,必须对语言的语法结构进行描述。 采用正规式和有限自动机可以描述和识别语言的单词符号; 用上下文无关文法来描述语法规则。 上下文无关文法的定义: 一个上下文无关文法G是一个四元式 G=(VT,VN,S,P),其中 VT:终结符集合(非空) VN:非终结符集合(非空),且VT ? VN=? S:文法的开始符号,S?VN P:产生式集合(有限),每个产生式形式为 P??, P?VN, ? ? (VT ? VN)* 开始符S至少必须在某个产生式的左部出现一次。 例,定义只含+,*的算术表达式的文法 G={i,+,*,(,)},{E},E, P, 其中,P由下列产生式组成: E ? i E ? E+E E ? E*E E ? (E) 定义:称?A?直接推出???,即 ?A????? 仅当A ? ?是一个产生式, 且?, ?? (VT ? VN)* 。 如果?1 ? ?2 ? ? ??n,则我们称这个序列是从?1到?n的一个推导。若存在一个从?1到?n的推导,则称?1可以推导出?n 。 例:对文法(1) E ? (E) ? (E+E)? (i+E)? (i+i) 通常,用 表示:从?1出发,经过一步或若干步,可以推出?n。 4.1 语法分析器的功能 语法分析的任务是分析一个文法的句子结构。 语法分析器的功能:按照文法的产生式(语言的语法规则),识别输入符号串是否为一个句子(合式程序)。 语法分析的方法: 自下而上分析法(Bottom-up) 基本思想:从输入串开始,逐步进行“归约”,直到文法的开始符号。即从树末端开始,构造语法树。所谓归约,是指根据文法的产生式规则,把产生式的右部替换成左部符号。 算符优先分析法:按照算符的优先关系和结合性质进行语法分析。适合分析表达式。 LR分析法:规范归约 G(E): E ? i| E+E | E-E | E*E | E/E | (E) i*i+i E*i+i E*E+i E+i E+E E 语法分析的方法: 自下而上分析法(Bottom-up) 自上而下分析法(Top-down) 基本思想:它从文法的开始符号出发,反复使用各种产生式,寻找匹配的推导。 递归下降分析法:对每一语法变量(非终结符)构造一个相应的子程序,每个子程序识别一定的语法单位,通过子程序间的信息反馈和联合作用实现对输入串的识别。 预测分析程序 优点:直观、简单和宜于手工实现。 4.2 自上而下分析面临的问题 自上而下就是从文法的开始符号出发,向下推导,推出句子。 带“回溯”的 不带回溯的递归子程序(递归下降)分析方法。 自上而下分析的主旨:对任何输入串,试图用一切可能的办法,从文法开始符号(根结点)出发,自上而下地为输入串建立一棵语法树。或者说,为输入串寻找一个最左推导。 例3.4.1 假定有文法G(S): (1) S→xAy (2) A→**|* 分析输入串x*y(记为?)。 当某个非终结符有多个产生式候选时,可能带来如下问题: 1. 分析过程中,当一个非终结符用某一个候选匹配成功时,这种匹配可能是暂时的。出错时,不得不“回溯”。 2. 文法左递归问题。一个文法是含有左递归的,如果存在非终结符P 4.3 LL(1)分析法 构造不带回溯的自上而下分析算法 要消除文法的左递归性 克服回溯 4.3.1 左递归的消除 直接消除见诸于产生式中的左递归:假定关于非终结符P的规则为 P→P? | ? 其中?不以P开头。 我们可以把P的规则等价地改写为如下的非直接左递归形式: P→?P? P?→?P?|? 一般而言,假定P关于的全部产生式是 P→P?1 | P?2 | … | P?m | ?1 | ?2|…|?n 其中,每个?都不等于?,每个?都不以P开头 那么,消除P的直接左递归性就是把这些规则改写成: P→?1P? | ?2P? | … | ?nP? P?→?1P? | ?2P? |… | ?mP? | ? 例 文法G(E): E→E+T | T T→T*F | F F→(E) | i 经消去直接左递归后变成: E→TE? E?→+TE? | ? T→FT? T?→*FT? | ? F→(E) | i 例如文法G(S): S→Qc|c Q→Rb|b R→Sa|a (4.3) 虽没有直接左递归,但S、Q、R都是左递归的 S?Qc?Rbc?Sabc 消除左递归
您可能关注的文档
- 城市基础设施建设投融资体制改革的法律原则、问题和路径.pdf
- OAuth2及shiro集成.pdf
- 空气污染及保护 浙教版.ppt
- 一种基于数据质量异构多源多模态感知数据获取方法_马茜.pdf
- 文档索引和管理.pdf
- 项目三 网络系统管理 任务一 WIN2003 SERVER安装及配置.ppt
- 化学:9.3《溶质质量分数》课件1(人教版九年级下).ppt
- 微型计算机接口 第13篇 FPGA设计基础.ppt
- 基于图像特征遥感图像快速配准.pdf
- 数据结构答案第3章 栈与队列.ppt
- 期末复习课件++专题7+阿基米德原理++2023-2024学年人教版八年级物理下册.pptx
- 4-1电磁振荡(教学课件)高中物理人教版选择性必修第二册.pptx
- 本包含页空白页.pdf
- 【会计实操经验】财务操纵的知识框架.pdf
- 英国b2c电商网站ocado市场前景及投资研究报告-培训课件外文版2024.6,拼多多,阿里巴巴,1688,temu,tiktok.pdf
- 印尼在线约会行业市场前景及投资研究报告-培训课件外文版2024.6,微信,tiktok.pdf
- 印尼物联网IOT行业市场前景及投资研究报告-培训课件外文版2024.5.pdf
- 印尼斋月消费情况分析报告-培训课件外文版2024.6.pdf
- 英国GDP分析报告-培训课件外文版2024.6.pdf
- 印尼铁路行业市场前景及投资研究报告-培训课件外文版2024.6,援建高铁.pdf
最近下载
- 19BJ9-2 室外工程 路 台 坡 棚.pdf
- 第十三课+買い物+会话课件【知识精讲精研】初中日语七年级人教版第一册.pptx
- 卓越绩效试题含答案.doc
- GB/T 20234.3-2023电动汽车传导充电用连接装置 第3部分:直流充电接口.pdf
- 课题结题材料目录.pdf
- GB_T 20234.2-2015 电动汽车传导充电用连接装置 第2部分交流充电接口.pdf
- 2023学堂《医学文献检索》作业单元考核答案.docx
- 2022-2023学年黑龙江省哈尔滨市四年级下册数学期末检测试卷(B卷)含解析.docx
- 《GB/T 20234.1-2023电动汽车传导充电用连接装置 第1部分:通用要求》.pdf
- 七年级下册奥数测试题+奥学题库+三套初中奥数题.doc
文档评论(0)