编译技术图式(第四章 语法分析)02自上而下的语法分析
编译技术图式(第四章 语法分析)02自上而下的语法分析
1、自上而下的分析法
1)算法1:广度搜索法
2)算法2:最左广度搜索法
3)算法3:最左深度收缩发
2、预测分析法
1)预测算法特点
-
预测算法更“快”
-
线性运行时间
-
表驱动
-
- 预测算法更“脆弱”
- 不支持所有的文法
- 预测算法更“脆弱” 不支持所有的文法 在文法表达力与运行速度之间寻求平衡
2)分析表:纵向为非终结符,横向为终结符
- first集:从后向前推出所有非终结符对应的第一个终结符
- 将first集对应的文法表达式填入分析表
- follow集:从前向后取出所有包含此非终结符的表达式
- #∈FOLLOW(S)
- 取出表达式中此终结符后
- 非终结符号放入FOLLOW(S)
- 终结符的first集放入FOLLOW(S)
- B→αA 或者 B→αAβ 且 β=>*ε 则 FOLLOW(B) 包含于 FOLLOW(A)
- 符号方向:直接将推导号变为包含于号
- 后面大,将前面的移到后面的FOLLOW(S)中
- 将follow集对应的A∈ε填入分析表
一个表只有一个产生式或者没有,是||1文法