α→β判断它是几型文法?
判断产生式左侧α中变量个数:
1.大于1个变量或者等于1个α是终结符Vt这种情况,则考虑0型PSG文法和1型CSG文法
α的长度大于β的长度为0型文法;
α的长度小于等于β的长度为1型文法。
2.等于一个变量并且是非终结符Vn
右侧β中变量大于一个为2型文法CFG
右侧β中变量为一个需要讨论一下:
如果变量都在左侧例如A→Ba A→Ca,这种属于3型文法RG中的左线型文法;如果变量都在右侧A→aB A→aC,这种属于3型文法RG中的右线型文法。
如果既含有左线型又含有右线型呢?例如A→aB A→Ca ;或者变量在中间例如S→0S1呢?
这两种属于2型文法CFG。
CFG语法树
短语:对应子树叶子的组合
直接短语:找到这个短语所在的子树,它的兄弟节点不是其他子树的根,则它是直接短语
句柄:最左直接短语。
S
↙↓↘
a A c
↓
b
这个语法树:
- 短语:abc,b
- 直接短语:b
- 句柄:b
为什么a和c不是直接短语?
因为A是A→b子树的根。
以上均是我自己复习的理解,如果有错误欢迎大家指出来谢谢大家🌹