【编译原理实验】|编译器前端实现(专题 1+专题 5)

实验总览

专题 1_词法分析程序设计原理与实现技术
专题 2_递归下降语法分析设计原理与实现技术
专题 3 LL(1)语法分析设计原理与实现技术
专题 4_算符优先语法分析设计原理与实现技术
专题 5_基于 SLR(1)分析法的语法制导翻译及中间代码生成程序设计原理与实现技术
专题 6 编译器前端实现(专题 1+专题 5)

本次程序实现

编译器前端与分实验的关系

将词法分析程序设计原理与实现(专题 1)和基于 SLR(1)分析法的语法制导翻译及中间代码生成程序设计原理与实现(专题 5)形成一个程序,即程序的输入为符号串源程序,输出为中间代码四元式序列。

在前面的每次实验中,我的程序都是按照相对完整的编译器实验去做的,所以实验六和实验五并无大的改动,只是把繁杂的输出去掉,并且加入了输出四元式为中间文件(mid.txt)的功能,由output函数实现。

具体实现是:设计了a词法分析类、b语法分析类(语法制导翻译)b类中组合一个a类,这样我的主函数中只需要操作b类即可,如下图。如果后续需要扩展目标代码生成等功能,我只需要再添加一个目标代码生成类,将其组合在我的编译器前端类中即可。