福州大学编译原理实验(词法分析+语法分析+语义分析)

源码下载
Java语言实现。使用时请使用1.8以上的版本编译运行。建议搭配IDEA食用。

说明

这是福州大学2022年的编译原理的实验报告(HZF老师)。

各位同学找到这个报告的时候想必也已经领教了一番。而本内容将有助于您度过编译原理的实验。请注意本内容无法帮助你满绩点。想卷的自己去写。

请注意以下要点:

实验报告格式请按老师要求来,本内容中的报告无法保证格式正确。

本项目是在IDEA下运行的,请不要使用eclipse。

改编自的代码来自网络,感谢那位老哥的分享。虽然是在CSDN上花了钱下的。那部分代码是GBK编码,请注意编码正确问题。

实验变化较大,请合理修改你的代码以适应变化,具体要求请看附带的PPT。或者remake换个老师。

实验1:忘了有哪些要点了。

实验2:用的是SLR(1)分析,请注意:运算符顺序可能错乱,比如本来应该先算乘法会先算减法,这是本代码的缺陷。因为默认+-*/优先级一样,没有对*/做特殊的处理。有兴趣的同学可以自行更改相关代码,这将显著提高你的成绩。

实验3

if、for等带跳转条件的语句:采取的策略是:先预先生成跳转的地址,记录下true_addr和false_addr。然后后续生成相应三地址码后填充到对应的地址之后,最终再把地址连续化,即可翻译成正确的代码。

预生成的代码地址可能不连续,最终生成时改成连续。一开始代码中有去连续GOTO的,但是本次实验不需要。

请注意:实验3中的数组是假数组,长度是定死在代码里的,请根据样板程序更改,或:有兴趣的同学写个真数组,这将显著提高你的成绩。

posted @ 2022-07-02 00:12  JessieLin  阅读(461)  评论(1编辑  收藏  举报