编译实验总结感想

Created
Dec 22, 2024 08:08 AM
22371094 罗孝俊
本学期的编译实验对我来说是一次比较新颖的经历。从零开始,通过理论课所学知识来设计一个小型系统的架构,着手逐步迭代实现一个较完整的编译器,并自行进行编译器测试与漏洞修复,这些都是之前的系统课程没有体验过的(操作系统实验是基于一个未完善的框架进行的开发,实验过程中其实还有很多云里雾里的流程以及实现问题)。
感受最深的是设计与编码的差异。设计的东西可能在编码时不一定能轻松实现,同时还会有在编码时才能发现的设计漏洞,然后在途中进行重构。例如,希望通过预读几个终结符来规避语法分析中的回溯问题,但是遇到Stmt→Exp ; 和 Stmt → LVal = Exp; 时,会发现仅通过预读Vt是无法判别Exp →…→ LVal和LVal的,这是在设计时没有考虑到的点。
感受较深的还有定位bug的困难。大部分情况通过公共测试库就能找到问题,而在代码生成二中会频繁出现无法简单检测到的问题。最后借助讨论区才得以通过所有Testcase。
总之,这学期的编译实验让我收获颇丰,也让我的实践能力和系统能力得到了磨练。