- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
编译原理课件第5章
第5章?自底向上的语法分析 5.1 自底向上的语法分析概述 5.2 算符优先分析法 5.3 LR分析法 5.4 语法分析程序的自动生成工具Yacc 5.5 本章小结 5.1 自底向上的语法分析概述 思想 从输入串出发,反复利用产生式进行归约,如果最后能得到文法的开始符号,则输入串是句子,否则输入串有语法错误。 核心 寻找句型中的当前归约对象——“句柄”进行归约,用不同的方法寻找句柄,就可获得不同的分析方法 例5.1 一个简单的归约过程 设文法G为: S→aABe A→Abc|b B→d 语法分析树的生成演示 a b b c d e 5.1.1 移进-归约分析 系统框架 采用表驱动的方式实现 输入缓冲区:保存输入符号串 分析栈:保存语法符号—已经得到的那部分分析结果 控制程序:控制分析过程,输出分析结果——产生式序列 格局:栈+输入缓冲区剩余内容=“句型” 移进-归约语法分析器的总体结构 与LL(1)的体系结构比较 移进-归约分析的工作过程 系统运行 开始格局 栈:#;输入缓冲区:w# 存放已经分析出来的结果,并将读入的符号送入栈,一旦句柄在栈顶形成,就将其弹出进行归约,并将结果压入栈 问题:系统如何发现句柄在栈顶形成? 正常结束: 栈中为 #S,输入缓冲区只有 # 输出结果表示:用产生式序列表示语法分析树 E → id 分析器的四种动作 1) 移进:将下一输入符号移入栈 2) 归约:用产生式左侧的非终结符替换栈顶的句柄(某产生式右部) 3) 接受:分析成功 4) 出错:出错处理 ??决定移进和归约的依据是什么—回头看是否可以找到答案 移进-归约分析中的问题 1) 移进归约冲突 例5.2中的 6)可以移进 * 或按产生式E→E+E归约 移进-归约分析中的问题 1) 移进归约冲突 例5.2中的 6)可以移进 * 或按产生式E→E+E归约 2) 归约归约冲突 存在两个可用的产生式 各种分析方法处理冲突的方法不同 如何识别句柄? 如何保证找到的直接短语是最左的?利用栈 如何确定句柄的开始处与结束处? 5.1.2 优先法 根据归约的先后次序为句型中相邻的文法符号规定优先关系 句柄内相邻符号同时归约,是同优先的 句柄两端符号的优先级要高于句柄外与之相邻的符号 a1…ai-1≮ai≡ai+1≡…≡aj-1≡aj≯aj+1…an 定义了这种优先关系之后,语法分析程序就可以通过ai-1≮ai和aj≯aj+1这两个关系来确定句柄的头和尾了 5.1.3 状态法 根据句柄的识别状态(句柄是逐步形成的) 用状态来描述不同时刻下形成的那部分句柄 因为句柄是产生式的右部,可用产生式来表示句柄的不同识别状态 例如: S→bBB可分解为如下识别状态 S→.bBB 移进b S→b.BB 等待归约出B S→bB.B 等待归约出B S→bBB. 归约 采用这种方法,语法分析程序根据当前的分析状态就可以确定句柄的头和尾,并进行正确的归约。 5.2 算符优先分析法 算术表达式分析的启示 算符优先关系的直观意义 + ≮ * + 的优先级低于 * ( ≡ ) ( 的优先级等于 ) + ≯ + + 的优先级高于 + 方法 将句型中的终结符号当作“算符”,借助于算符之间的优先关系确定句柄 算术表达式文法的再分析 E→E+E E→E-E E→E*E E→E/E E→(E) E→id E→E+T| E-T| T T→T*F| T/F| F F→(E)|id 算符文法 如果文法G=( V,T,P,S)中不存在形如 A→αBCβ 的产生式,则称之为算符文法(OG —Operator Grammar) 即:如果文法 G 中不存在具有相邻非终结符的产生式,则称为算符文法。 每个产生式的右部都没有两个语法变量直接相邻。 该文法不会产生如下形式的句型: …E1E2… 其中,E1和E2是两个相邻的语法变量。 5.2.1 算符优先文法 定义5.1 假设G是一个不含ε-产生式的文法,A、B和C均是G的语法变量,G的任何一对终结符a和b之间的优先关系定义为: ⑴ a≡b,当且仅当文法G中含有形如A→…ab…或A→…aBb…的产生式; ⑵ a≮b,当且仅当文法G中含有形如A→…aB…的产生式,而且Bb…或BCb…; ⑶ a≯b,当且仅当文法G中含有形如A→…Bb…的产生式,而且B…a或B…aC; ⑷ a与b无关系,当且仅当a与b在G的任何句型中都不相邻。 问题:什么是算符优先文法? 5.2.1 算符优先文法 设G=(V,T,P,S)为OG,如果? a,b∈VT, a≡b, a≮b, a≯b 至多有一个成立,则称之为算符优先文法(OP
您可能关注的文档
- 2016年北京第二外国语学院翻译硕士MTI考研历年真题解析,学姐经验.pdf
- 2016年北京第二外国语学院翻译硕士MTI考研历年真题解析,考研参考书,考研经验.pdf
- 2016年北京第二外国语学院翻译硕士MTI考研历年真题解析,考研参考书,学姐经验.pdf
- 2016年北京第二外国语学院翻译硕士MTI考研历年真题解析,考研参考书,考研重难点笔记.pdf
- 2013 06 中考 二模 物理.pdf
- 2016北京第二外国语学院翻译硕士考研真题.pdf
- 2016年北京第二外国语学院翻译硕士MTI考研参考书,考研历年真题,报录比.pdf
- 2016年北京第二外国语学院翻译硕士MTI考研参考书,考研历年真题,考研经验贴.pdf
- 2016年北京第二外国语学院翻译硕士MTI考研真题、考研经验.pdf
- 2016年北京第二外国语学院翻译硕士MTI考研参考书推荐,考研历年真题,考研重点笔记.pdf
最近下载
- DB44T 2719-2025《有限空间智慧安全管控技术规范》.pdf VIP
- 河堤建设工程施工合同.doc VIP
- 2024年执业中药师考试复习资料重点知识点与背诵口诀.pdf VIP
- 职业院校课程思政与思政课程协同育人典型案例.pdf VIP
- 12D101-5(替代94D101-5)110kV及以下电缆敷设.docx VIP
- 北师大版小学六年级数学上册第1单元测试卷(有答案).docx VIP
- 第六章管式反应器.ppt VIP
- 六年级上册分数四则混合运算300题及答案.docx VIP
- 2024—2025学年河南省开封高级中学高一上学期第一次月考物理试卷.doc VIP
- 学校升旗台工程方案范文(3篇).docx VIP
文档评论(0)