码迷,mamicode.com
首页 > 其他好文 > 详细

读龙书学编译原理 词法分析(5)...

时间:2016-05-07 01:00:43      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

最后是最小化算法, 它的目的其实在于通过合并的方式, 减少状态数, 然后使得最终生成的代码中用来表示状态转移的数据结构尽量小, 以此节约空间和时间.  DFA中运用最广泛的算法是hopcroft算法, 接下来就是对该算法的简要介绍...

 

技术分享

 

这个算法的第一步是将所有的状态(也就是代码中的nodes) 划分成两部分, 接收状态和非接收状态 (这两个类中的节点显然不可能合并)... 然后分别遍历两个部分中的所有状态, 对于每一个字符, 如果某个部分中的某个(或者某群)接受了该字符之后转移到了属于另一个部分的状态, 那么就把这个状态(或者这群)分离出来并且构成一个新的部分, 不然的重复该过程知道没有新的部分被构成出来.

下面是一个实例

技术分享

具体过程如图所示 :

 

技术分享

 

读龙书学编译原理 词法分析(5)...

标签:

原文地址:http://www.cnblogs.com/nzhl/p/5467541.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!