编译原理(三)语法分析基础
语法分析基础
说明:以老师PPT为标准,借鉴部分教材内容,AlvinZH学习笔记。
功能与方法
1. 根据文法规则,从源程序单词符号串中识别出语法成分,并进行语法检查,未予以分析和代码生成做准备。
2. 两大分析方法:自顶向上分析与自底向上分析。
自顶向下分析
1. 自顶向下分析方法:直观理解为从开始符号出发,依据规则建立推导序列,最后推至目标字符串。
2. 存在主要问题
- 左递归问题
- 回溯问题
3. 主要解决方法
- 递归子程序法
- LL分析法
自底向上分析
1. 自底向上分析方法:直观理解,从目标串出发,自左向右扫描,反复查找当前句型的句柄建立规约序列,最后规约至开始符号。
2. 存在主要问题
- 句柄的识别问题
- 若两个以上规则右部有相同符号且构成句柄,如何选择?
3. 主要解决方法
- 算符优先分析法
- LR分析法
如何实现自顶向下分析与自底向上分析?请看下回分解。
引用说明
- 邵老师课堂PDF
- 《编译原理级编译程序构造》