编译原理--有穷自动机

发布时间 2023-10-19 00:02:09作者: 次林梦叶

image

from pixiv



有穷自动机


有穷自动机(finite state automata)是一个识别器,它对每个输入的字符做识别和判断,以确定其能到达的最终状态或状态集和路径,有穷自动机分为两类,即不确定的有穷自动机NFA和确定的有穷自动机DFA.

image

image

首先要重点区别一下DFA和NFA:

  • DFA的初态是唯一的,而NFA不唯一
  • DFA和NFA的终止状态集都可以为空

关于DFA和NFA的终止状态集都可以为空的讨论

image

结合上面解释举一个例子:

image

可以看到答案B中状态1是一个"死路",即进去了就出不来了,也就是说这条路走不通,不能往这里走




image

这里写错了,按照教程上的说法应该是到S的幂集
所谓幂集是:
image

举一个例子:

f(0,a)={0,3} f是转换函数,这种情况只有NFA才存在
因为DFA是经过转换函数后到原来的S集合元素中,只有NFA才有可能通过转换函数到原来的S集合元素组成的子集中去(教材P49)