本辅助工具适用于编译理论课 "正则表达式与有穷自动机" 章节的作业。
核心功能:
- 正则表达式转 NFA (不确定的有穷自动机)
- NFA 转 DFA (确定的有穷自动机)
- DFA 的最小化
其余功能:
- 输出自动机的转移矩阵
- 输出自动机的状态转移图
运行环境要求:
- Python 3
- 安装
prettytable
与graphviz
库
其中 graphviz
除了使用 pip install graphviz
安装 Python 模块以外,还需在系统中安装 graphviz
工具:下载链接
使用方法:见 __main__.py
中的示例,可直接修改 __main__.py
并使用命令 python -u .
或 python -u __main__.py
运行。(使用命令运行须确保终端位于该仓库目录下)
关于 graphviz
输出状态图:在当前目录生成一个 .gv
文件和一个 .pdf
文件,其中 .gv
文件为文本文件,PDF 文件为绘制的状态图。调用状态图输出将自动启动系统默认的 PDF 阅读器以显示状态图。
状态图符号说明:以圆圈表示状态(圆圈内为状态名),箭头表示状态转移边(箭头上的文字为引起状态转移的输入,如没有文字则表示输入为 start
标记引出箭头指向起始状态,以双圈表示终止状态。