编译原理-词法分析03-DFA
0.术语
DFA
Deterministic finite automation,确定性有穷自动机。一般用于翻译正则表达式。
状态state
DFA中的圆圈,表示模式在识别过程中的位置。
转换transition
DFA中的箭头,该转换依赖于箭头上的字符。
初始状态start state
DFA中识别过程的开始,表示“不来自任何地方”。
接收状态accepting state
DFA中识别过程的结束,表示一个匹配,用双圆圈表示。
确定性的deterministic
下一个状态由当前状态和当前输入的字符唯一给出的自动机。即T(Sn,c) = Sn+1,而非T(Sn,c) = {Sn+1,Sn+i}具有多个。
出错转换error transition
非DFA中的一个正确的匹配,可以理解为补偿状态。一般用于先行回溯分析中。
1. 定义
DFA(确定性有穷自动机)M由字母表∑,状态集合S,转换函数T:Sx∑→S、初始状态_s0_∈S以及接受状态的集合A⊂S组成。由M接受的且写作L(M)被定义为字符c1c2...cn串的集合,其中每个ci∈∑,存在状态s1=T(s0,c1),s1=T(s1,c2),...,sn=T(sn-1,cn),其中sn是A(即一个接受状态)的一个元素。
S:state
A:accepting
M:machine
T:transition
Sx∑:笛卡尔乘积