CFG的分析树的定义

- 根节点的标号为文法开始符号
- 内部结点表示对一个产生式 A → β A→β A→β 的应用,该结点的标号是此产生式左部 A A A 。该结点的子结点的标号从左到右构成了产生式的右部 β β β
- 叶结点的标号既可以是非终结符,也可以是终结符。从左到右排列叶节点得到的符号串称为是这棵树的产出(yield)或边缘(frontier)
- 分析树是推导的图形化表示。
句型的短语
- 给定一个句型,其分析树中的每一棵子树的边缘称为该句型的一个短语(phrase)
- 如果子树只有父子两代结点,那么这棵子树的边缘称为该句型的一个直接短语(immediate phrase)

举例:

对于 “提高人民生活水平” 这一句子(不含非终结符的句型),提高、人民、生活、水平是直接短语,高人、民生、活水不是直接短语。
二义性文法
什么是二义性文法:
如果一个文法可以为某个句子生成多棵分析树,则称这个文法是二义性的。

出现二义性时,计算机难以编译执行。因此,我们需要定义规则来消除歧义
对于任意一个上下文无关文法,不存在一个算法,判定它是无二义性的;但能给出一组充分条件,满足这组充分条件的文法是无二义性的
- 满足,肯定无二义性
- 不满足,也未必就是有二义性的
二义性文法的消除:
(1)不改变文法中原有的语法规则,仅加进一些语法的非形式规定
如 if E then S 优先级较高
(2)构造一个等价的无二义性文法,即把排除二义性文法的规则合并到原有文法中,改写原有的文法
转载地址:
https://www.icourse163.org/learn/HIT-1002123007?tid=1003246005#/learn/announce