编译原理笔记9 自上而下语法分析-…
2017-05-05 15:06
375 查看
1)不带回溯的自上而下分析算法
a) 消除左递归。
i. 什么是左递归:
ii. 消除直接左递归,消除间接左递归。
b) 消除直接左递归。
c) 消除左递归算法。
注:1)若非终结符排列顺序不同,改写后的文法也不同,但它们是等价的。
d) 消除回溯
i. 产生回溯的原因:进行推导时,若产生式存在多个候选式,选择哪个候选式进行推导存在不确定性。
ii. 消除回溯的基本原则:对文法的任何非终结符,若能根据当前读头下的符号,准确的选择一个候选式进行推导,那么回溯就可以消除。注:之所以会产生回溯是因为在推导匹配的过程中存在虚假匹配。
iii. 消除回溯的方法:预测与提左因子
iv. 根据读头下符号选择候选式,使其第一个符号与读头下符号相同,或该候选式可推导出的第一个符号与读头下符号相同。这相当于向前看了一个符号,所以称为预测。注:使用了预测之后,选择候选式不再是盲目的了,所以也就无需回溯。
v. 求候选式的终结首符集。
vi. 采用预测方法后PDA 的运行。
vii. 提取公共左因子。
a) 消除左递归。
i. 什么是左递归:
ii. 消除直接左递归,消除间接左递归。
b) 消除直接左递归。
c) 消除左递归算法。
注:1)若非终结符排列顺序不同,改写后的文法也不同,但它们是等价的。
d) 消除回溯
i. 产生回溯的原因:进行推导时,若产生式存在多个候选式,选择哪个候选式进行推导存在不确定性。
ii. 消除回溯的基本原则:对文法的任何非终结符,若能根据当前读头下的符号,准确的选择一个候选式进行推导,那么回溯就可以消除。注:之所以会产生回溯是因为在推导匹配的过程中存在虚假匹配。
iii. 消除回溯的方法:预测与提左因子
iv. 根据读头下符号选择候选式,使其第一个符号与读头下符号相同,或该候选式可推导出的第一个符号与读头下符号相同。这相当于向前看了一个符号,所以称为预测。注:使用了预测之后,选择候选式不再是盲目的了,所以也就无需回溯。
v. 求候选式的终结首符集。
vi. 采用预测方法后PDA 的运行。
vii. 提取公共左因子。
相关文章推荐
- 编译原理笔记7 自上而下语法分析-…
- 编译原理笔记8 自上而下语法分析-…
- 编译原理笔记11 自上而下分析-递…
- 编译原理笔记10 自上而下分析-预…
- 编译原理笔记6 词法分析程序
- 编译原理笔记12 自底向上分析技术…
- 编译原理笔记5 词法分析
- 编译原理笔记13 自底向上分析技术…
- 【编译原理】自上而下的语法分析之预测分析法
- 编译原理学习笔记---自上而下分析
- 编译原理笔记2 引论续之编译程序的…
- 编译原理,自上而下非递归语法分析自上而下的语法分析
- 编译原理笔记4 文法与语言
- 编译原理笔记3 编译程序
- 【编译原理】自顶向下的语法分析之递归下降分析法
- 编译链接原理   C++
- 编译原理学习笔记12——(魔镜魔镜告诉我—— 构造预测分析程序)——2014_1_28
- 跟vczh看实例学编译原理——三:Tinymoe与无歧义语法分析
- 编译原理实习(应用预测分析法LL(1)实现语法分析)