- 14
- 0
- 约7.38千字
- 约 107页
- 2017-05-19 发布于河南
- 举报
第四章 语法分析-1
编译原理Principle of Compiler;语法分析概述
自顶向下分析
不确定的自顶向下分析(递归下降分析法)
LL(1)
自底向上分析
算符优先方法(略)
SLR(1), LALR(1), LR(1)
总结;语法分析的任务;语法分析的任务;2种类型的分析器
自顶向下方法
分析树是从根到叶子节点的顺序构建的
实际上,是寻找从开始符号出发到句子的推导序列
分析器的输入由左到右一个符号一个符号的扫描;2种类型的分析器
自底向上方法
分析树是从叶子节点到根节点的顺序构建的
实际上,是寻找从句子出发到开始符号的归约序列
分析器的输入由左到右一个符号一个符号的扫描;自顶向下分析与推导序列
分析句子: id * id;自底向上分析与归约序列
分析句子: id * id;不确定的自顶向下分析(递归下降方法)
分析树从上到下,从左到右的构建过程
考虑以下文法:
E→T | T + E
T→int | int * T | ( E )
分析句子: ( int )
从开始符号E作为根节点出发
按顺序尝试该非终结符号的所有规则;E→T | T + E
T→int | int * T | ( E );E→T | T + E
T→int | int * T | ( E );E→T | T + E
T→int | int * T | ( E );E→T | T + E
T→int | int * T | ( E );E→T | T + E
T→int | int * T | ( E );E→T | T + E
T→int | int * T | ( E );E→T | T + E
T→int | int * T | ( E );E→T | T + E
T→int | int * T | ( E );E→T | T + E
T→int | int * T | ( E );E→T | T + E
T→int | int * T | ( E );E→T | T + E
T→int | int * T | ( E );E→T | T + E
T→int | int * T | ( E );E→T | T + E
T→int | int * T | ( E );23;不确定的自顶向下分析(递归下降方法)
带回溯的分析方法
本质上是一种基于穷举原理的试探方法,是个反复使用不同的产生式谋求匹配输入串的过程
不确定性体现在每次选择的产生式不一定是正确的
在编程实现的时候可以为每个非终结符设计为一个过程,通过过程的递归调用来实现分析过程。;递归下降子程序
为每个非终结符设计为一个过程,通过过程的递归调用来实现分析过程。;不确定的自顶向下分析方法的特点
优点: 对文法的限制较小
困难和问题:
回溯,造成效率低下,代价极高
文法的左递归
出错时难以确定出错的位置
这种方法只有理论价值,实践中价值不大
改进
消除文法的左递归
克服回溯问题;三种类型的左递归;直接左递归的消除;直接左递归的消除;直接左递归的消除;直接左递归的消除;直接左递归的消除;33;间接和潜在左递归的消除
代入法: 将一个产生式规则右部的α中的非终结符N替换为N的候选式。如果N有 n个候选式,右边的α重复n次,而且每一次重复都由N的不同候选式来代替N。
间接和潜在左递归通常能通过代入转换为直接左递归;输入: 给定一个不包含环路(没有A?+A的推导)和形如A→ε的产生式的文法G
输出: 一个等价的无左递归文法
算法过程
对文法G的所有非终结符进行排序,形成A1,A2,…, An
for i:=1 to n do begin
for j:=1 to i-1 do begin
把每个形如Ai→Ajγ的规则改写成:
Ai→δ1γ|δ2γ|…δkγ,
其中Aj→δ1|δ2|…|δk是关于当前Aj的产生式
end
消除关于Ai的直接左递归;
end ;例子
S→Aa | b
A→Ac | Sd
排序: S, A
代入后得到
S→Aa | b
A →Ac | Aad | bd
消除直接左递归后
S→Aa | b
A →| bdA’
A’→cA’ | adA’| ε ;例子
S→Aa | b
A→Ac | Sd ;回溯产生的原因
文法中每个非终结符A的产生式右部称为A的候选式,如果有多个候选式左端第一个符号相同, 如A→α1|α2|…|αm ,其中有多个αi以a为头,则语法分析程序无法根据当前输入符号a选择产生式,只能试探。
如: 以下两条规则该如何选择
stmt → if (expr) stmt else stmt
| if (expr) stmt
具体表现为两种情况
;具体表现为两种情况
第一种情况: 文法中相同左部的规则,其右部左端第
您可能关注的文档
- 实变函数第二章点集答案.ppt
- 《员工基本职业素质培训》课件.ppt
- 《政治生活》我国的宗教政策ppt课件.ppt
- 《作文》专题系列023《作文分论之议论文写作如何有效例证》课件.ppt
- 中国古代服饰研究 3.ppt
- 外交政策的宗旨 维护世界和平 促进共同发展1.ppt
- 郭国庆 市场营销学通论 第六版 第5章课件.ppt
- 第六章.合同法.ppt
- 16年8月27日福建省事业单位考试真题下载.doc
- 2015年福建土建造价基础复习资料.doc
- 小区绿化施工协议书.docx
- 墙面施工协议书.docx
- 1 古诗二首(课件)--2025-2026学年统编版语文二年级下册.pptx
- (2026春新版)部编版八年级道德与法治下册《3.1《公民基本权利》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《4.3《依法履行义务》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.2《按劳分配为主体、多种分配方式并存》PPT课件.pptx
- (2026春新版)部编版八年级道德与法治下册《6.1《公有制为主体、多种所有制经济共同发展》PPT课件.pptx
- 初三教学管理交流发言稿.docx
- 小学生课外阅读总结.docx
- 餐饮门店夜经济运营的社会责任报告(夜间贡献)撰写流程试题库及答案.doc
原创力文档

文档评论(0)