Skip to content

编译理论课作业(正则表达式与有穷自动机)辅助工具

Notifications You must be signed in to change notification settings

dhy2000/automata-regex-util

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

正则表达式与有穷自动机 辅助工具

本辅助工具适用于编译理论课 "正则表达式与有穷自动机" 章节的作业。

核心功能:

  • 正则表达式转 NFA (不确定的有穷自动机)
  • NFA 转 DFA (确定的有穷自动机)
  • DFA 的最小化

其余功能:

  • 输出自动机的转移矩阵
  • 输出自动机的状态转移图

运行环境要求:

  • Python 3
  • 安装 prettytablegraphviz

其中 graphviz 除了使用 pip install graphviz 安装 Python 模块以外,还需在系统中安装 graphviz 工具:下载链接

使用方法:见 __main__.py 中的示例,可直接修改 __main__.py 并使用命令 python -u .python -u __main__.py 运行。(使用命令运行须确保终端位于该仓库目录下)

关于 graphviz 输出状态图:在当前目录生成一个 .gv 文件和一个 .pdf 文件,其中 .gv 文件为文本文件,PDF 文件为绘制的状态图。调用状态图输出将自动启动系统默认的 PDF 阅读器以显示状态图。

状态图符号说明:以圆圈表示状态(圆圈内为状态名),箭头表示状态转移边(箭头上的文字为引起状态转移的输入,如没有文字则表示输入为 $\varepsilon$ )。特别地,以 start 标记引出箭头指向起始状态,以双圈表示终止状态。

About

编译理论课作业(正则表达式与有穷自动机)辅助工具

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages