📌  相关文章
📜  编译器设计-有限自动机

📅  最后修改于: 2021-01-18 05:24:38             🧑  作者: Mango


有限自动机是一种状态机,它将字符串符号作为输入并相应地更改其状态。有限自动机是正则表达式的识别器。将正则表达式字符串送入有限自动机时,它将为每个字面量更改其状态。如果成功处理了输入字符串,并且自动机达到其最终状态,则接受该字符串,即,刚输入的字符串被认为是手头语言的有效标记。

有限自动机的数学模型包括:

  • 有限状态集(Q)
  • 有限组输入符号(Σ)
  • 一开始状态(q0)
  • 最终状态集(qf)
  • 跃迁函数(δ)

转移函数(δ)将状态的有限集合(Q)映射到输入符号的有限集合(Σ)Q×ΣQ

有限自动机构造

令L(r)是某种有限自动机(FA)识别的常规语言。

  • 状态:FA的状态用圆圈表示。州名写在圆圈内。

  • 起始状态:自动机从其开始的状态称为起始状态。起始状态有一个指向它的箭头。

  • 中间状态:所有中间状态均至少具有两个箭头;一个指向他们,另一个指向他们。

  • 最终状态:如果成功解析了输入字符串,则自动机应处于此状态。最终状态由双圆圈表示。它可能具有指向它的奇数个箭头和指向它的偶数个箭头。奇数箭头的数量比偶数大1,即,奇数=偶数+1

  • 过渡:当在输入中找到所需的符号时,就会发生从一种状态到另一种状态的过渡。转换后,自动机可以移至下一个状态或保持相同状态。从一种状态到另一种状态的移动显示为有向箭头,其中箭头指向目标状态。如果自动机保持在相同状态,则会绘制从状态指向自身的箭头。

示例:我们假设FA接受以数字1结尾的任何三位数二进制值。FA = {Q(q 0 ,q f ),Σ(0,1),q 0 ,q f ,δ}

有限自动机构造