《编译原理》学习总结--第四章 语法分析 自上而下分析
一 知识点
1 移近-规约
用一个寄存符号的先进后出栈,把输入符号一个一个地移进到栈里,当栈顶形成某个产生式的候选式时,即把栈顶的这一部分替换成(归约为)该产生式的左部符号。
规约:
是指根据文法的产生式规则,把产生式的右部替换成左部符号。
规范规约:句子中相对最左的可以组成某个产生式右部的一个或多个符号就是最左直接短语,而把它们用相应产生式的左部替换的过程就是规范规约。
2
修建语法树
(1)子树:是由该树的某个结点(子树的根)连同它的所有子孙组成。
(2)简单子树:只有单层分支的子树(只有父子两代没有第三代)
(2)简单子树:只有单层分支的子树(只有父子两代没有第三代)
(3) 对语法树有如下结论
①每个句型都有一棵语法树与之对应
②每棵语法树的叶结点自左至右排列就组成一个句型
③每棵子树的叶结点自左至右排列就组成一个短语
④每棵简单子树的叶结点自左至右排列就组成一个直接短语
⑤每棵最左简单子树的叶结点自左至右排列就组成一个句柄
3
算法优先分析法
如果一个算符文法G中的任何终结符对(a,b)至多只满足三关系之一,则称G是一个算符优先文法(OPG文法)
4 优先函数
(1)优点:便于比较,节省空间;
(2)缺点:原来不存在优先关系的两个终结符,由于自然数相对应,变成可以比较的。要进行一些特殊的判断。
5 LR分析方法
LR分析方法是一种自下而上的分析方法
LR分析法的归约过程是规范推导的逆过程,所以LR分析过程是一种规范归约过程
6 活前缀
活前缀:文法G的活前缀是他的规范句型的前缀,该前缀不超过句柄的右端
特点:该前缀加上被分析串中未被分析的终结符,就可以构成一个规范句型
与句柄的关系:
(1)活前缀中已含有句柄的全部符号(句柄的符号即为其最右符号)。
(2)活前缀中含句柄的一部分符号(句柄开头的 若干符号与活前缀最右的若干个符号一致)。
(3)活前缀中全然不包含句柄的任何符号
二 题目
三 感悟
这一章对我来说非常的难, 这一章的内容与上一章是一个完全相反的过程,大体的过程弄懂了,但是还有很多的细节没有搞懂,还需要再学习。