C-Minus词法分析和语法分析设计编译器编译原理课程设计 下载本文

去掉注释之后自动生成sourceFile.txt中:

正确词法分析结果输出自动生成在Token.txt中:

正确语法分析的结果输出,自动生成在tokenTree.txt中:

4.2.2错误用例结果

错误处理:(将a.txt中“return ”改为“return 0”之后再运行):

错误词法分析结果输出自动生成在Token.txt中:

错误语法分析结果输出自动生成在token.Tree.txt中:

5. 总结

?

收获

熟悉C语言的结构、指针、文件方面的使用;学会用startUml构造状态图,及用 switch-case结构实现状态转换实现词法分析;学会用递归下降方法实现EBNF文法规则,进而实现语法分析;熟悉构造编译器的步骤及程序实现的框架及部分方法。

?

特色

有良好的输出界面,通过tiny程序修改成CMinus程序,其思路和方法和tiny差不多,

方便理解。

?

不足

① 程序语法实现部分只用了递归下降分析一种方法。

② 此程序框架与教材《编译原理及实践》附录B Tiny编译器的程序框架相似。 ③ 递归下降分析方法手工实现应经验少程序逻辑错误多,调试费时久,不能保证程序的高健壮性。