- 1、本文档共39页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
编译原理ch5 自下而上语法分析-part1
四则运算的优先规则: 先乘除后加减,同级从左到右 归约即计算表达式的值。归约顺序不同,则计算的顺序也不同,结果也不一样。 如果规定算符的优先次序,并按这种规定进行归约,则归约过程是唯一的。 * * 5.2算符优先分析 * * 算符优先分析过程是自下而上的归约过程,但未必是严格的最左归约。也就是说,算符优先分析法不是一种规范归约法。 所谓算符优先分析法就是定义算符之间的某种优先关系,借助于这种关系寻找“可归约串” 进行归约的一种方法。 一个文法,如果它的任一产生式的右部都不含两个相继(并列)的非终结符,即不含如下形式的产生式右部: …QR… 则我们称该文法为算符文法。 约定: a、b代表任意终结符; P、Q、R代表任意非终结符; ‘…’代表由终结符和非终结符组成的任意序列,包括空字。 * * 一、算符优先文法及优先表构造 注意:与数学上的,,=不同 a · b并不意味着b·a 优先级(性)越高,越早被归约 假定G是一个不含?-产生式的算符文法。对于任何一对终结符a、b,我们说: 1. a b 当且仅当文法G中含有形如P→…ab…或P→…aQb…的产生式;a和b优先级相同 * * 3. a· b 当且仅当G中含有形如P→…Rb…的产生式,而 R …a或R …aQ;a的优先级大于b 2. a · b当且仅当G中含有形如P→…aR…的产生式, 而R b…或R Qb…;a的优先级小于b 如果一个算符文法G中的任何终结符对(a,b)至多只满足下述三关系之一: a · b,a b, a · b 则称G是一个算符优先文法。 构造集合FIRSTVT(P)的算法: 按其定义,可用下面两条规则来构造集合FIRSTVT(P): 1. 若有产生式P→a…或P→Qa…, 则a? FIRSTVT(P); 2. 若a? FIRSTVT(Q),且有产生式P→Q… , 则a? FIRSTVT(P)。 * * FIRSTVT 构造集合LASTVT(P)的算法: 按其定义,可用下面两条规则来构造集合LASTVT(P): 1. 若有产生式P→… a或P→ … aQ,则a? LASTVT(P); 2. 若a? LASTVT(Q),且有产生式P→… Q ,则a? LASTVT(P)。 * * LASTVT 检查G的每个候选式,若有p→…aQb…或p→…ab…的产生式,则置a b 若G中有形如…aP…的候选式,则对于所有的b∈FIRSTVT(P),有a ·b 若G中有形如…Pb…的候选式,则对于所有的a∈ LASTVT(P),有a · b * * 优先关系表的构造 * 一个文法G的句型的素短语是指这样一个短语,它至少含有一个终结符,并且,除它自身之外不再含任何更小的素短语。 最左素短语是指处于句型最左边的那个素短语。 * * 二、算符优先分析法 例:考虑下面的文法G(E): (1) E→E+T | T (2) T→T*F | F (3) F→P ? F | P (4) P→(E) | i * * E E F + * T i F T F T P + E T P 句型:T+F*P+i 短语: 直接短语: 句柄: 素短语: 最左素短语: , T+F*P+i T , F , P , F*P, , i T+F*P T , F , P , i T F*P , i F*P 算符优先文法句型(括在两个#之间)的一般形式写成: #N1a1N2a2…NnanNn+1# 其中,每个ai都是终结符,Ni是可有可无的非终结符。 定理:一个算符优先文法G的任何句型的最左素短语是满足如下条件的最左子串 Njaj…NiaiNi+1, 其中,aj-1 ·aj aj aj+1,…,ai-1ai ai · ai+1 * * 例: * 算符优先分析法特点: 优点: 简单,快速 缺点: 可能错误接受非法句子,能力有限. 算符优先分析法是一种广为应用、行之有效的方法 用于分析各类表达式 ALGOL 60 * * 把每个终结符?与两个自然数f(?)与g(?)相对应,使得 若?1 ?2,则f(?1) g(?2) 若?1 ?2,则f(?1) = g(?2) 若?1 ?2,则f(?1) g(?2) f称为入栈优先函数,g称为比较优先函数。 优点:便于比较,节省空间; 缺点:原来不存在优先关系的两个终结符,由于自然数相对应,变成可以比较的。 * * 三、优先函数 * * 例: 有许多优先关系表不存在优先函数,如: * * 不存在对应的优先函
您可能关注的文档
最近下载
- 湿热灭菌验证方案及报告.doc VIP
- TZS 0680—2025《医疗机构实验室生物安全管理组织架构规范》(水印版).pdf VIP
- 网络游戏对青少年情绪调节和自我效能感的作用.docx VIP
- YBT4001.1-2019 钢格栅板及配套件 第1部分:钢格栅板.pdf VIP
- 大数据技术与应用 课件 第二章 大数据采集.pptx
- LAQ-E-KS-23 掘进工安全作业指导书.doc VIP
- 连云港市主要小麦品种产量与主要品质性状的初步研 究参考.pdf VIP
- DB32_T 3697-2019既有建筑幕墙可靠性检验评估技术规程.docx VIP
- PW2330-2.0数据手册下载.pdf VIP
- 2025湖南铁道职业技术学院教师招聘考试真题汇总.docx VIP
文档评论(0)