我在纸上写了一篇DFA,并希望将其翻译成一组正则表达式。有人知道这样做的好工具吗?
答案 0 :(得分:6)
从我的小谷歌搜索中,我找到了JFLAP。他们还有how to Convert FA to regular expression的教程。
<强> JFLAP 强>
JFLAP是用于实验的软件 与正式语言主题包括 非确定性有限自动机, 非确定性下推自动机, 多带图灵机,有几种 语法类型,解析和 L-系统。除了建设 并测试这些例子,JFLAP 允许一个人试验 建筑证明从一种形式到 另一个,例如将NFA转换为 DFA到最小状态DFA到a 正则表达式或常规语法。 单击此处获取更多信息 可以用JFLAP做什么。
答案 1 :(得分:1)
如果您想要的是解析器,则无需将正则表达式转换为中间形式。您可以使用flex
或re2c
相当直接地对DFA进行编码。多个状态的编码不是常见的情况,所以一开始感觉有点不自然(并且在教程中没有很好地介绍),但是一旦你开始使用它,它就非常容易。