前言
- 形式语言理论:乔姆斯基发现文法,用文法产生语言的每个句子。
- 自动机理论:克林建立了有穷状态自动机,为识别语言的系统
- 文法与自动机是等价的
- 文法与自动机的运算对象:集合

文法
文法构造
文法分类
线性文法与FA的转换
右线性文法
FA -> 文法

文法 -> FA

左线性文法
FA -> 文法
文法 -> FA
规则

例子

DFA、NFA、ε-NFA转换
ε-NFA -> NFA
前置知识
- ϵ−CLOSURE(q0) = { p | 从q0到p有一条标记为ϵ 的路}
- ε-NFA 的 状态转移函数

转换过程
例子

NFA -> DFA
- 带 NFA 中 终止状态 的 状态簇 为 新DFA 的终止状态
- 例子



FA 与 RE 的转化
RE -> ε-NFA
DFA -> RE
例子

注意事项
- 不计算自身到自身的弧,如果状态q的入度为n,出度为m,则将状态q及其相关的弧去掉之后,需要添加n*m条新弧。
泵引理 与 封闭性
泵引理
定理

应用
封闭性
定义
交、并、补、连接、闭包、反转、同态、逆同态 运算都具有封闭性
补运算的封闭性
如果L 是Σ 上的RE, 那么L=Σ∗−L 也是 正则的。
交运算的封闭性
如果L 和M 是 RE, 那么L∩M 也是 正则的。
同态 的定义

逆同态 的定义

例子
Myhill-Nerode定理
定理规定以下三个命题同时成立:
- L⊆Σ∗ 是RL
- L 是Σ∗上的某一个具有 有穷指数 的 右不变等价关系 的 并
- RL具有有穷指数
右不变等价关系
定义:设R是Σ∗上的等价关系,对于∀x,y∈Σ∗, 如果xRy成立,则xzRyz也成立,z∈Σ∗, 则R被称为 右不变等价关系
- 关系Rm和RL是 右不变等价关系
关系RM
- 设DFA M,M所确定的Σ∗上的关系RM 定义为:
对于∀x,y∈Σ∗- xRMy⇔δ(q0,x)=δ(q0,y)
- 也就是说:xRMy⇔∃q∈Q,x,y∈set(q)。
- 或者说:M从q0开始读入x和y以后进入同一个状态。
关系RL:
- 设L⊆Σ∗,L确定的Σ*上的关系RL 定义为:
对于∀x,y∈Σ∗
xRLy⇔(∀z∈Σ∗,xz∈L⇔yz∈L)
二者关系
- 如果xRMy,则 一定有xRL(M)y
- 如果xRL(M)y,则 不一定有xRMy
- ∣Σ∗/RL(M)∣ ≤∣Σ∗/RM∣ ≤Q,RM是RL(M) 的 加细
例子

关系的指数
R 的指数
设R是Σ∗上的等价关系,则称∣Σ∗/R∣ 是R 关于Σ∗的指数。
R 的一个等价类
Σ∗的关于R的一个等价类,也就是Σ∗/R的任意一个元素
极小化
定义
最小状态DFA的含义:
没有多余状态(死状态)
- 如何消除多余状态?删除即可。

没有两个状态是互相等价(不可区别)
- 兼容性(一致性)条件——同是终态或同是非终态
- 传播性(蔓延性)条件——对于所有输入符号,状态s和状态t必须转换到等价的状态里。
例子:
最小化下图所示的DFA

- 分成终态和非终态:
- 将M的状态分为两个子集一个由终态 k1={C,D,E,F}组成,一个由非终态 k2={S,A,B}组成。
考察{S,A,B}是否可分。

因为A经过a到达C属于k1.而S经过a到达A属于k2。B经过a到达A属于k2,所以K2继续划分为{S,B},{A}。
考察{S,B}是否可再分:
B经过b到达D属于k1。S经过b到达B属于k2,所以S,B可以划分。划分为{S},{B}
考察{C,D,E,F}是否可再分:
因为C,D,E,F经过 a和b 到达的状态都属于{C,D,E,F}=k1 所以相同,所以不可再分。
{C,D,E,F}以{D}来代替则,因为CDEF相同,你也可以用C来代替。无所谓的最小化的DFA如图:

RE运算
定义
正则表达式(regular expression,RE)
- Φ 是Σ上的RE,它表示语言Φ;
- ϵ 是∑上的RE,它表示语言{ϵ};
- 对于∀a∈Σ,a是Σ上的RE,它表示语言{a};
- 如果r和s分别是∑上表示语言R和S的RE,则:
- r与s的“和” (r+s)是Σ上的RE,(r+s)表达的语言为R∪S;
- r与s的“乘积” (rs)是Σ上的RE,(rs)表达的语言为RS;
- r的克林闭包(r*)是Σ上的RE,(r*)表达的语言为R*。
- 只有满足1、2、3、4的才是Σ上的RE。
表示
- 0,表示语言{0}
- 1,表示语言{1}
- (0+1),表示语言{0,1}
- (01),表示语言{01}
- ((0+1)*),表示语言{0,1}*
运算
- 结合律:
(rs)t=r(st)
(r+s)+t=r+(s+t) - 分配律:
r(s+t)=rs+rt
(s+t)r=sr+tr - 交换律:
r+s=s+r - 幂等律:
r+r=r - 加法运算零元素:
r+Φ=r - 乘法运算单位元:
rε=εr=r - 乘法运算零元素:
rΦ=Φr=Φ - L(Φ)=Φ
- L(ε)={ε}
- L(a)={a}
- L(rs)=L(r)L(s)
- L(r+s)=L(r)∪L(s)
- $L(r*)=(L®)^* $
- L(Φ∗)={ε}
- L((r+ε)∗)=L(r∗)
- L((r∗)∗)=L(r∗)
- L((r∗s∗)∗)=L((r+s)∗)
- 如果L(r)⊆L(s),则r+s=s
- $L(rn)=(L®)^n $
- rnrm=rn+m
一般地,r+ε=r,(rs)n=rnsn,rs=sr - 幂
r0=ε
rn=rn−1r