语法分析之自顶向下分析
说明:以老师PPT为标准,借鉴部分教材内容,AlvinZH学习笔记。
基本过程分析
1. 一般方法:对任一字符串,试图用一切可能的方法,从树根节点(开始符号)出发,根据文法自上而下地为输入符号串建立一棵语法树。直观理解为从开始符号出发,依据规则建立推导序列,最后推至目标字符串。
2. 特点:分析过程是带有预测的,是一种试探过程。试探失败就会出现回溯问题,降低了分析的效率。
3. 存在问题:左递归问题、回溯问题。
问题一:左递归问题
1. 左递归文法:文法规则中有形如 \(U::=U···\) 或 $ U=+>U···$。
为什么自顶向下分析不能处理左递归?
答:试想,若遇到非终结符U时,尝试用该规则右部 "U···" 去匹配字符串,下一步又要匹配U,又要尝试用用该规则右部 "U···" 右部去匹配,无限循环无终止。
2. 消除左递归
引用说明
- 邵老师课堂PDF
- 《编译原理级编译程序构造》