【编译原理】文法

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. 正规式与正规文法的转换

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

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

posted on 2018-09-22 09:45  君莫問  阅读(74)  评论(0)    收藏  举报

导航