- 57
- 0
- 约1.38万字
- 约 65页
- 2020-07-02 发布于四川
- 举报
3.3 自上而下分析方法 3.3.1 递归下降分析法 3.3.2 LL(1)分析法 3.3.1 递归下降分析法 递归下降分析法是一种自上而下的分析方法,文法的每个非终结符对应一个递归过程。分析过程就是从文法开始符出发执行一组递归过程,这样向下推导直到推出句子;或者说从根结点出发,自上而下为输入串寻找一个最左匹配序列,建立一棵语法树。 提取公共左因子存在的问题 不能解决ε候选式不确定性问题 如果ε是一个当前的候选式,匹配符号串的当前符号时,可以选择ε候选式,使当前符号与句型中在ε后面的符号匹配。 如果当前的候选式的首符集和跟在ε后面的符号相同,且同时与符号串的当前符号匹配,又要试探 提取公共左因子可能导致出现ε候选式 一种不会出现上面问题的文法——LL(1) LL(1),从左(L)右扫描输入串,最左(L)推导,分析时,每步向前查看一个(1)符号 LL(1)方法和递归下降法属于同一级别的自顶向下分析法,但有一些区别: 递归下降法对每个非终极符产生子程序,而LL(1)方法则产生LL分析表; 递归下降法能判断每个产生式的结束,而LL(1)方法则不能; 递归下降法分析不用符号栈,而LL(1)方法则用符号栈(分析栈)。 对应的推导过程: A ? (由A→aA) a A ? (由A→ABl) a A B l ? (由A→aA) a a A B
原创力文档

文档评论(0)