文章目录
一、正规文法和正规式
1、文法与自动机的关系
2、正规文法与正规式
3、正规式等价
4、正规式到正规文法
5、正规文法到正规式
二、自动机
1、DFA : 确定的有穷自动机
2、NFA : 不确定的有穷自动机
3、NFA确定化算法
4、构造NFA N状态K的子集的算法
5、确定有穷自动机(DFA)化简
6、DFA的最小化算法
三、词法分析
1、正规表达式与有限自动机的等价性
2、正规文法与有限自动机的等价性
3、词法分析
一、正规文法和正规式
1、文法与自动机的关系
在这里插入图片描述
0型文法(短语结构文法):其能力相当于图灵机,可以表征任何递归可枚举集,而且任何0型语言都是递归可枚举的。
1型文法(上下文有关文法CSG):产生式的形式为α 1 A α 2 → α 1 β α 2 α_1Aα_2→α_1βα_2α
1
Aα
2
→α
1
βα
2
,即只有A AA 出现在 α 1 α_1α
1
和 α 2 α_2α
2
的上下文中时,才允许 β ββ 取代 A AA 。其识别系统是线性有界自动机。
2型文法(上下文无关文法CFG):产生式的形式为 A → β A→βA→β,β ββ取代A AA时与A AA的上下文无关。其识别系统是不确定的下推自动机。
3型文法(正规文法RG):产生的语言是有穷自动机(FA)所接受的集合。
2、正规文法与正规式
单词符号结构的描述方法:
正规文法(3型文法)
正规式(正则表达式)
正规表达式(正则表达式)(regular expression)
是说明单词模式(pattern)的一种重要的表示法(记号), 是定义正规集的数学工具。
在编译中,用以描述单词符号。
定义(正规式和它所表示的正规集):
设字母表为 ∑ ∑∑,辅助字母表∑ ′ = { Φ , ε , ∣ , • , ∗ , ( , ) } ∑’={ Φ,ε,|,•,*,(,)}∑
′
={Φ,ε,∣,•,∗,(,)}
Φ ΦΦ 和 ε εε 都是 ∑ ∑∑ 上的正规式,它们所表示的正规集分别为 ε {ε}ε 和 { } {}{} ;
任何 a ∈ ∑ a∈∑a∈∑,a aa 是 ∑ ∑∑ 上的一个正规式,它所表示的正规集为 a {a}a ;
假定e 1 e_1e
1
和 e 2 e_2e
2
都是 ∑ ∑∑ 上的正规式,它们所表示的正规集分别为 L ( e 1 ) L(e_1)L(e
1
) 和L ( e 2 ) L(e_2)L(e
2
) ,那么,( e 1 ) (e_1)(e
1
) , e 1 ∣ e 2 e_1| e_2e
1
∣e
2
, e 1 • e 2 e_1•e_2e
1
•e
2
, e ∗ e^e
∗
也都是正规式,它们所表示的正规集分别为L ( e 1 ) L(e_1)L(e
1
), L ( e 1 ) ∪ L ( e 2 ) L(e_1)∪L(e_2)L(e
1
)∪L(e
2
), L ( e 1 ) L ( e 2 ) L(e_1)L(e_2)L(e
1
)L(e
2
) 和 ( L ( e 1 ) ) ∗ (L(e_