编译原理(Principles of Compiler Design)

课程信息

课程简介:本课程系统介绍高级程序设计语言从源程序到可执行程序的基本原理与实现技术,涵盖词法与语法分析、语义分析、中间表示、代码优化、目标代码生成、运行时环境及汇编链接等内容。通过理论学习与编译器实践,培养学生理解、分析和实现程序语言处理系统的能力。

授课教师:何冬杰      课程助教:熊锋(278487953@qq.com)

推荐课本:《Modern Compiler Implementation in ML》("虎书"),网上有电子版; 其C语言版有中文版《现代编译原理:c语言描述》。

说点什么:本课程采用函数式语言 OCaml 实现编译器、汇编器、链接器和解释器等系统,帮助同学们聚焦编译原理与核心技术。课程注重理论与实践结合,希望同学们通过作业与实验深入理解完整的编译流程,提升系统软件的分析、设计与实现能力。

课程安排

学期:2026-2027学年第一学期(共12周)
时间地点:    [1-4,6-11周]周一[3-4节] DZ403            |    [1-4,6-11周]周三[1-2节] DZ216            |    [5,7-8,10周]周日[6-9节] DS1512
交流群:微信群(老师和助教们都在,用于即时/离线交流;请各位同学使用“学号-姓名”格式作为名片/昵称)

课程讲义

课件 [PDF] 日期 作业 实验
1. 导引 2026-09-07(周一)
2. OCaml简介 2026-09-09(周三)
2026-09-14(周一)
OCaml编程练习
3. 中间表示 2026-09-14(周一)
2026-09-16(周三)
IR使用练习
4. 解释执行 2026-09-21(周一)
2026-09-23(周三)
Lab1: 解释执行实验
5. RISC-V汇编 2026-09-28(周一)
2026-09-30(周三)
熟悉RISC-V指令 Lab2: RISC-V汇编器实现
6. 指令选择 2026-10-12(周一)
2026-10-14(周三)
熟悉MIR指令,指令选择算法
7. 指令调度 2026-10-14(周三)
2026-10-19 (周一)
8. 活性分析 2026-10-21 (周三)
9. 寄存器分配 2026-10-21 (周三)

作业说明

实验说明

课程提供基于 OCaml 的完整编译器框架,涵盖解释器、编译器、汇编器和链接器等。实验将围绕该框架逐步展开,通过实现编译器关键模块,帮助同学们理解从源代码到 RISC-V 程序运行的完整过程。

参考资料