很讨厌黄老师的一句话:“就是花点时间就可以做好的工作”。此言不实,重修需要时不时和老师邮件汇报、获取反馈,持续一个多月。此过程中,我深感和他在教学理念上存在极大冲突,对课程的质量和体验十分失望,为必修这门课的师弟师妹们默默心酸。
本文写作的目的是帮助受害者们去伪存真,获取到编译原理理论课和项目课的有效载荷。课程,至少在 2023 年的版本,只涉及到传统编译器(不提及 LLVM),只涉及到前端,且是连前端的一半内容都不到。单从知识点的角度,是简单且蜻蜓点水的,但从实验项目的角度,是灾难的。因为在要求写一个极简的 Flex + YACC 的同时,没有对二者作出任何介绍。更令人厌恶的,是乱七八糟的捉摸不定的文档、视频和汇报要求,不愿给学生提供真正的便利。课程本应能够传授知识和经验,而非在形式上空耗精力。
假设课程要求焰火,不肯告知有打火机,不愿意给根火柴,而是扔来一块木头。钻出火星后,还要求在木头上雕个花,才允许上交过去。为了顺利毕业,却是千真万确地、情真意切地,得感谢他。下列分享的是经处理后的代码和文档。教学评估要保证去重,可我不忍心等到 3、5 年后,若取之,请有道。
- 代码不完整。删去了图形界面和自定义 MiniC 语言的部分;可使用 go test 命令运行
- 代码不符新要求。24 年任务书里的 Tiny 语言不完全等于教材;文法分析改用 SLR(1) 而非 LL(1)
- 文档是给人类阅读的版本。不按模板要求写,曾被邮件批评
- 需自行补充。如做 PPT、录视频、把文件夹改成中文名
https://gitee.com/pylog/scnu-compiler-construction-2023