版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/xyf13920745534/article/details/82317921
是什么
文法是一种形式语言的描述。当我们要描述一种语言时,需要给出这种语言的所有句子,当句子的数目是有限可数时,就要都列出来;当句子是一个无穷集,也就是无限不可数时,就要给出可以表示它们的结构的描述方法或者说,句子的组成规则。这种规则就是文法。
下面是文法的定义
文法G定义为一个四元组( , ,P,S),其中, 为非终结符集合, 终结符集合;P是产生式结合;S称为识别符或开始符号,也是一个非终结符,至少要在一条产生式的左边出现。
终结符:不可分割的符号,一般用小写字母表示,如a,b,c,d
非终结符:可分割的符号,一般用大写字符表示,如A,B,C,D
终结符就是推导到终结符时,不可再推导下去;而非终结符可以继续推导下去。
四种文法的名称
文法 | 别称 | 对应 |
---|---|---|
0型文法 | 短语文法 | |
1型文法 | 上下文有关文法 | 线性有界自动机 |
2型文法 | 上下文无关文法 | 下推自动机 |
3型文法 | 正规文法 | 有限状态自动机 |
0型文法(PSG):
α∈(
∪
)* ,且至少含一个
β∈(
∪
)*
对产生式没有任何限
例如:A0→A0 , A1→B
0型文法是这几类文法中,限制最少的一个。
1型文法
对任一产生式α→β,都有|β|>=|α|, 仅仅 S→ε除外
|β|表示的是长度,意思是说左边的推导式长度要小于右边的推导式传给长度
2型文法(CFG)
2型文法:对任一产生式α→β,都有α∈ ,β∈( ∪ )*
3型文法(RG)
每个产生式均为 “A→aB”或“A→a” —— 右线性
“A→Ba”或“A→a” —— 左线性
其中,A、B∈
,a∈
*
例如:G[S]: S→0A | 0
A→1B | B
B→1 | 0