递归下降分析法
1. 实验题目: 递归下降分析法
2. 实验目的:
1 掌握递归下降分析法的基本原理
2 掌握预测符集的求法
3 掌握递归下降分析程序的构造方法
3. 实验要求:
1 理解递归下降语法分析方法的主要原理
2 理解递归下降分析法对文法的要求
3 熟练掌握Predict集合的求法
4 熟练掌握文法变换算法(消除左递归和消除公共前缀)
4. 设计思想:
4.1 基本原理
递归下降法是语法分析中最易懂的一种方法。它的主要原理是,对每个非终极符按其产生式结构构造相应语法分析子程序,其中终极符产生匹配命令,而非终极符则产生过程调用命令。因为文法递归相应子程序也递归,所以称这种方法为递归子程序下降法或递归下降法。其中子程序的结构与产生式结构几乎是一致的。
4.2文法要求
递归下降法要满足的条件:假设A的全部产生式为Aàα1|α2|……|αn ,则必须满足如下条件才能保证可以唯一的选择合适的产生式
predict(Aàαi)∩predict(Aàαj)=Φ,当i≠j.
4.3实现原理
假设文法中有如下的产生式Aàb1 | b2 | … | bn,则应按如下方法编写语法分析子程序
procedure A()
begin if tokenÎPredict(Aàb1) then θ(b1) else
if tokenÎPredict(Aàb2) then θ(b2) else
……
if tokenÎPredict(Aàbn) then