软考第三章

5 阅读2分钟

正规式与正规集

正规式是描述程序语言的表达式,对于字母∑,其上的正规式及其表示的正规集可以递归定义如下。

  • ε是一个正规式,它表示集合L(ε)={ε}
  • 若a是∑上的字符,则a是一个正规式,它所表示的正规L(a)={a}
  • 若正规式r和s分别表示正规集L(r)=L(s),则
  1. r|s是正规式,表示集合L(r)∪L(s);
  2. r.s是正规式,表示集合L(r)L(s);
  3. r是正规式,表示集合(L(r));
  4. (r)是正规式,表示集合L(r)。

仅有有限地使用上述三个步骤定义的表达式才是∑上的正规式。由此可见,正规式要么为空,要么由字母、或、链接、闭包运算符*具有最高级的优先级,链接运算具有次高优先级,或运算符|具有最低优先级。

正规式正规集举例
ab字符串ab构成的集合{ab}
a ▏b字符串a、b构成的集合{a,b}
a*由0或多个a构成的字符串集合{空,a,aa,a..a(n个a)}
(a ▏b)*以a为首字符的a、b字符串的集合{空,a,b,ab,aab,abb,baa,aba,...}
a(a ▏b)*以a为首字符的a、b字符串的集合{a,aa,ab,aab,aba,aaab,aaba,...}
(a ▏b)*abb以abb结尾的a、b字符串的集合{abb,aabb,babb,abaabb,abaabb,...}

有限自动机

M=(s,∑,δ,S0,Ζ)

  1. S是一个有限集合,每个元素为一个状态
  2. ∑是一个又穷字母表,每个元素为一个输入字符
  3. δ是转换函数:是一个单值对照
  4. S0属于S,是其唯一的初态
  5. Ζ是一个终态集(可空) 有限自动机可以形象的用状态转换图表示,设有限状态自动机:DFA=({S,A,B,C,f},{1,0},δ,S,{f}),其中: δ(S,0)=B,δ(S,1)=A,δ(A,0)=f,δ(A,1)=C,δ(B,0)=C,δ(B,1)=f,δ(C,0)=f,δ(C,1)=f
  • 有限自动机能够识别的串:从初态出发可以到达终态且停留在终态。
  • 确定的有限自动机:当一个状态面对一个输入符号的时候,所转换到的是一个唯一确定状态。
  • 不确定的有限自动机:当一个状态面对一个输入符号的时候,它所转换到的可能不止一个状态,可以是一个状态集合。