递归下降分析
- 类似于递归函数:
遍历输入序列:
每遇到终结符VT判断是否匹配成功,
每遇到非终结符VN调用对应的"过程",递归分析
非递归的预测分析
不需要为每个非终结符VN编写递归下降分析的过程,而是根据预测分析表构造一个自动机PDA(表驱动的预测分析)
- 下推自动机(Push Down Automata)
相比有穷自动机,增加一个栈(下推存储器),起到记忆的作用
-> 比有穷自动机识别能力更强: 有穷自动机的状态个数是有穷的,且无法记忆输入符号的个数,所以无法识别无穷的串(比如:任意个a开头的字符串 L = anbn, n >= 1),而下推自动机通过栈可以解决输入符号个数是变量的问题
输出的产生式序列 -> 对应一个最左推导