上级文章:
[编译原理随记]正则表达式构建DFA(r(#)followpos(i)构造):https://blog.csdn.net/qq_28033719/article/details/117561604
先准备需要进行简化的 DFA 状态图
它对应的 DFA 状态转换表 (Dtran) 是:
优化状态数
然后进行拆分区别:
1、先把所有状态放到一组内
2、第一次区分是区分接受状态和非接受状态,如果接受状态是一个,那么接收状态为一组,多个就多组,其他归为非接受状态。
3、然后第一次对接受状态组,逐个查看可输入符号对应的结果状态是否都属于同一个分组内,把不属于就继续拆分,(可以按同分组拆分)每拆分一次,都得继续在新的两个组重新遍历输入符号。
如果是 (a|b)*abb 对应的 Dtran