0

我已经实现了一个简单的 Scanner-Generator,它在所有情况下都能正常运行。

这不是代码问题,而是关于如何优化 DFA 的问题。使用 Hopcroft 算法最小化一个接受节点和接受相同规则的接受节点效果很好,但是该算法没有最小化具有几个不同接受节点的 DFA。例如,如果您创建一个接受两个“if”、“[az][a-z0-9]*”的 DFA,然后运行 ​​Hopcroft 算法,则唯一的 Accept Node 会消失。当然,每个节点从一开始就被分成不同的组。

我想知道如何最小化这种类型的 DFA。即使没有办法解决这些最小化问题,我也希望你回答。

我的代码:https ://github.com/rollrat/compiler-compiler

4

0 回答 0