【编译原理】文法

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/horizon_junmowen/article/details/82810075

1. 终结符&非终结符

类型 表示 符号
非终结符 大写字母表示 ABCD
终结符 小写字母表示 abcd
关系 非终结符可以推导出终结符 A->a

2.文法类型

在这里插入图片描述
—VN——非终结符的集合
—VT——终结符的集合
—P ——推导式子集合
—S ——开始符

0型文法

特点:
α->β
α至少含有一个非终结符∈VN
α,β∈ ( VN ∪ VT )*
例:
A->a √
Aa->aB √
ab->A × 因为α=ab,其中不含有非终结符

1型文法

——又称上下文有关文法

特点:
α->β——满足0型文法的基础上
|β|>=|α|——|β|、|α|表示α和β的 长度
例:
A->Bab √
Aa->B × 因为Aa长度为2,B长度为1,不满足|β|>=|α|

2型文法

——上下文无关文法

特点:
α->β,|β|>=|α|——满足1型文法
α是 一个非终结符
例:
A->aB √
aB->abC × 因为aB 不是 一个非终结符

3型文法

——正规文法

特点:
α->β,|β|>=|α|, α是 一个非终结符——满足2型文法
A->a|aB(右线性) A->a|Ba(左线性)
例:
A->a, A->aB, B->a, B->cB √ 3型文法 右线性
A->a, A->Ba, B->a, B->cB × A->Ba(左线性)B->cB(右线性)左线性和右线性只能取其一

2.4 文法类型之间的关系

在这里插入图片描述

3. 正规式与正规文法的转换

正规式
正则表达式
是一种表示正规集的公式
规则:
.
规则 文法产生式 正规式
1 A->xB、B->y A=xy
2 A->xA/y A=x*y
3 A->x、A->y A=x/y
理解:
对于正规式和正规文法之间的转换规则,不理解的话,画出推导树,结果就显而易见了。

有什么问题欢迎在下方评论,或前来与在下共商,愿与君共勉!

猜你喜欢

转载自blog.csdn.net/horizon_junmowen/article/details/82810075