自下而上分析的基本思想
采用“移进-归约”思想进行自下而上分析基本思想用一个寄存符号的先进后出栈,把输入符号一个一个地移进到栈里,当栈顶形成某个产生式的候选式时,即把栈顶的这一部分替换成( 归约 为)该产生式的左部符号。PS:即从后往前识别,当目前的识别的一串为产生式的时候,将非终结符归约成左侧的非终结符
核心问题:识别可归约串
短语
定义:令 G 是一个文法, S 是文法的开始符号,假定α βδ是文法 G 的一个句型,如果有SαAδ 且 Aβ
则β称是句型αβδ相对于非终结符A的短语。
如果有Aβ,则称β是句型αβδ相对于规则Aβ的直接短语。
eg:
考虑文法G(E):
E T | E + T
T F | T * F
F (E) | i
和句型i1*i2+i3
短语:i1,i2,i3, i1*i2 , i1*i2+i3
直接短语:i1,i2,i3(直接构成,不需要进行二次从非终结符转换为终结符)
句柄:即最左直接短语 i1
自下而上分析法(Bottom-up)
基本思想
- 从输入串开始,逐步归约,直到文法的开始符号
- 归约:根据文法的产生式规则,把串中出现的产生式的右部替换成左部符号
- 从树叶节点开始,构造语法树
算符优先分析法(不讲)
- 按照算符的优先关系和结合性质进行语法分析
- 适合分析表达式
LR分析法
- 规范归约:句柄作为可归约串
LR分析法
- L:从左到右扫描输入串
- R:自下而上进行归约
工作框架
2019-10-27