有穷自动机(有限自动机)
识别正规文法所定义的语言和正规式所表示的集合。
引人有穷自动机理论,正是为词法分析程序的自动构造寻找特殊的方法和工具。
有穷自动机分为两类:
确定的有穷自动机(Deterministic Finite Automata,DFA)
不确定的有穷自动机(Nondeterministic Finite Automata,NFA)
DFA:
一个确定的有限自动机(DFA)M是一个五元组:M=(K,Σ,f,S,Z):
K是一个有穷集,它的每个元素称为一个 状 态Σ是一个有穷字母表,它的每个元素称为 一个输入符号,所以也称Σ为 输入符号表 ;f 是 转换函数 ,是在 K × Σ→K 上的映射,即,如 f ( ki , a ) =kj ,( ki ∈ K , kj ∈ K )S ∈K是唯一的一个 初态 ;Z⊆ K是一个 终态集 ,终态也称可接受状态或结 束状态。
NFA:
NFA M={ K,Σ ,f , S , Z}K 为状态的有穷非空 集Σ 为有穷输入字母表f 为K ×Σ*→K 的 子集( 2^ K )的 一种映射S⊆ K是初始状态集Z⊆ K 为终止状态集
NFA转换为等价的DFA:
定理:设L为一个由NFA接受的集合,则存在一个接受L的DFA。
子集法:将NFA转换成等价的DFA的算法
为一个NFA构造相应的DFA的基本想法是让DFA的每一个状态对应NFA的一组状态。
11-11