编译原理笔记9 自上而下语法分析-无回溯的自顶向下分析技术

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

1)不带回溯的自上而下分析算法

a) 消除左递归。

i. 什么是左递归:

ii. 消除直接左递归,消除间接左递归。

b) 消除直接左递归。

c) 消除左递归算法。

注:1)若非终结符排列顺序不同,改写后的文法也不同,但它们是等价的。

d) 消除回溯

i. 产生回溯的原因:进行推导时,若产生式存在多个候选式,选择哪个

候选式进行推导存在不确定性。

ii. 消除回溯的基本原则:对文法的任何非终结符,若能根据当前读头下的符号,准确的选择一个候选式进行推导,那么回溯就可以消除。

注:之所以会产生回溯是因为在推导匹配的过程中存在虚假匹配。iii. 消除回溯的方法:预测与提左因子

iv. 根据读头下符号选择候选式,使其第一个符号与读头下符号相同,或该候选式可推导出的第一个符号与读头下符号相同。这相当于向前看了一个符号,所以称为预测。注:使用了预测之后,选择候选式不再是盲目的了,所以也就无需回溯。

v. 求候选式的终结首符集。

vi. 采用预测方法后PDA 的运行。

vii. 提取公共左因子。

相关文档
最新文档