.今天早上去图书馆,去看编译原理,想把这部分搞清楚,看着龙书+国产的某一本不知什么的习题与解析,猜过程。猜原理。终于是看懂了。整体的步骤是三步:一,先把正规式转换为NFA(非确定有穷自动机),二,在把NFA通过“子集构造法”转化为DFA,三,在把DFA通过“分割法”进行最小化。一步很简单,就是反复运用下图的规则,图1这样就能转换到NFA了。给出一个例题,来自Google book。本文主要根据这个例题来讲,图2二.子集构造法。同样的例题,把转换好的NFA确定化,图3这个表是从NFA到DFA的时候必须要用到的。第一列第一行I的意思是从NFA的起始节点经过任意个所能到达的结点集合。Ia表示从该集合开始经过一个a所能到达的集合,经过一个a的意思是可以略过前后的。同样Ib也就是经过一个b,可以略过前后任意个。至于第二行以及后面的I是怎么确定的。我参考了一些题目才明白,原来就是看上面的Ia和Ib哪个还没出现在I列,就拿下来进行运算,该列对应的Ia和Ib就是前面我说的那样推导。如果还不太明白,看图