编译原理(Principles and Techniques of Compilers)

课程信息

教学目标:编译原理的教学目标是使得学生掌握如下知识:和编译器设计相关的形式语言理论基础;编译程序的体系结构,编译器的各个组成部分的原理和技术,包括词法分析、语法分析、语义分析和目标代码生成、代码优化,以及设计环境与程序错误的检查和校正;初步了解一些编译器生成工具的基础理论和应用。另外,该课程将通过上机实验使得学生初步了解一个设计编译器的过程。

授课老师谭添

课程助教:张腾(分管实验),颜俊梁(分管作业)

使用课本:《编译原理》,Alfred V. Aho等著,赵建华等译(也称“龙书”,就是封面上有条紫龙,还有个屠龙武士),有两个版本,完整版和本科教学版均可,当然后者便宜些;实验使用《编译原理实践与指导教程》,许畅等著,囊中羞涩的也可看随实验发布的讲义。

说点什么:通常这是门困难的课程,这当然是指自己闷头看书的情况,如果在课堂上,你大概会过得比较轻松愉快 :-)

课程安排

学期:2021-2022学年第二学期(共17周)
班级:基础班 22020260(拔尖计划、匡亚明-理科强化班)
时间:周一3-4节、周三5-6节
地点:仙II-211

课程动态新闻

以下是重要通知、以及书面作业或上机实验的重要变化:

课程讲义

日期 课件 [PDF]
2022-02-14(周一) 1. 引论
2022-02-16(周三) 3. 词法分析 (2022-02-21更新)
2022-02-23(周三) 4. 语法分析 (2022-03-14更新)
2022-03-16(周三) 5. 语法制导的翻译(语义分析) (2022-04-02更新)
2022-04-02(周六) 6. 中间代码生成 (2022-04-20更新)
2022-04-20(周三) 7. 运行时刻环境 (2022-05-04更新)
2022-05-04(周三) 8. 代码生成 (2022-05-11更新)
2022-05-11(周三) 9. 机器无关的优化 (2022-06-01更新)
2022-06-01(周三) 期末总结

书面作业(课堂教学立方收取)

上课布置后,在这里也会再次公布,以确保不会错过作业(不适用于既不上课也不看课程网站的学霸们)

上机实验(OJ平台收取)

编译原理的实验内容是为一个小型的类C语言(C--)实现一个编译器。如果你顺利完成了本实验任务,那么不仅你的编程能力将会得到大幅提高,而且你最终会得到一个比较完整的、能将C--源代码转换成MIPS汇编代码的编译器,所得到的汇编代码可以在SPIM Simulator上运行。实习总共分为四个阶段:词法和语法分析、语义分析、中间代码生成以及目标代码生成。每个阶段的输出是下一个阶段的输入,后一个阶段总是在前一个阶段的基础上完成。

(注意实验可能会打补丁,所以请根据提示定期检查版本)

注意事项

实验内容