福州大学编译原理实验(词法分析+语法分析+语义分析)
源码下载
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中的数组是假数组,长度是定死在代码里的,请根据样板程序更改,或:有兴趣的同学写个真数组,这将显著提高你的成绩。
本文来自博客园,作者:JessieLin,转载请注明原文链接:https://www.cnblogs.com/6543x1/p/16436289.html