[英]Regular expression that generates a DFA with dead or superfluous states
我正在寻找在我的词法分析器中实现DFA最小化器的方法,但似乎无法生成看起来好像已经是表达式的最小DFA的DFA。
我正在从NFA构造DFA,而NFA是使用后缀正则表达式的thomson构造构建的。 这几乎与龙书中所描述的完全一样。 为了制作词法分析器,使用从开始状态开始的epsilon转换将几个NFA组合在一起。 DFA算法就是在此组合NFA上应用的。
那么,是否有任何“已知”正则表达式会生成DFA,从而为消除死角和最小化状态提供一个很好的测试平台?
当然,我可以破解一个奇怪的DFA并在上面应用算法,但这不是一个合适的测试用例吗? 如果这样的话,我构建DFA的方法就不容易出现死态,那么该信息将同样有价值,因为从那时起,我可以完全跳过实施状态消除功能。
编辑:如果您需要实现细节才能准确回答,则代码可在github上找到 ,尤其是NFA.cs和DFA.cs类。 此外,如果有帮助,我还会在博客文章中撰写有关正在使用的构造算法的系列文章 。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.