Skip to content

hjzin/CompileLab

Repository files navigation

CompileLab

编译原理课上的实验合辑。从词法分析到句法分析再到中间代码生成都有一点涉及。实验包含下面的内容。

  • 词法分析程序lexer

    用c++写的词法分析程序,输入是一段程序,输出是每个字符的类别码和字符值。

  • 递归下降分析法程序parser

    用c写的递归下降分析程序,对输入的表达式进行分析。

  • LL(1)分析法程序LL1

    用python写的LL1分析法程序,因为要自动生成FIRST集和FOLLOW集和构造分析表之类的,所以用python应该快一些,以后的几个实验都有类似的需求,所以都用python写了。

  • 算符优先分析法程序OG

    可以自动生成FirstVT和LastVT集,优先关系矩阵,然后对输入的表达式进行算符优先分析。

  • SLR(1)分析法程序SLR1

    可以自动生成项目集族,识别活前缀的DFA和SLR(1)分析表等等,并能打印出SLR(1)分析过程。

  • 编译器前端程序compile

    将词法分析和SLR(1)分析结合起来,输入一个赋值语句,可以先进行词法分析输出二元式,再用SLR(1)分析法生成四元式中间代码,最后用pyqt弄了一个小界面。为了完成这个实验,要将之前C语言的词法分析程序改成python的,不过时间紧改的很偷懒,输入的字符之间必须有空格...

    scanner_module是词法分析的模块,compiler_ui.py是界面文件,逻辑写在slr1.py中,运行时直接运行slr1.py即可。

About

编译原理实验合辑

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors