计算机专业主干课, 编译程序(系统)是计算机系统的核心支撑软件, 贯穿程序语言、运行时系统、体系结构, 联系计算机科学和计算机系统的典范。
- 焦景辉 王建楠 徐文博 范如文 张齐颢
掌握编译程序/系统设计的基本原理;掌握“常见”语言机制的实现技术;经历开发一个小型编译程序的主要阶段;自学并使用自动构造工具;加深对计算机系统的理解;会将所学知识灵活应用。
- 《程序设计》(Java, C/C++,RUST,Scala,...)
- 《数据结构》
- 《形式语言与自动机》(optional)
- 《计算机组成原理》(optional)(MIPS, RISC-V, X86, ARM,...)
2022-09 至 2022-12
- 每周三下午 1:30-3:05,六教6A414 陈
for (i=1; i<=16; i++) {
1. 预习(optional)
2. 完成第i周作业(optional)
3. 上课听讲,提问/被提问
4. 在deadline前,按序完成compiler_lab实验
5. 复习,做课后练习,if (碰到问题) 到微信/网络学堂上提问;
}
在考试周参加期末考试;
- Compilers:Principles, Techniques, and Tools, Alfred V.Aho, Ravi Sethi, Jeffrey D.Ullman, Addison Wesley, 2007(龙书)
- Crafting a Compiler, Charles N. Fischer, Ronald K.Cytron, Richard J. LeBlanc, Jr., 2010.
- Modern Compiler Implementation in Java/C Andrew W.Appel,2005 (虎书)
- Advanced Compiler Design and Implementation,Steven S. Muchnick, 1997(鲸书)
- The Theory of Parsing, Translation, and Compiling,John E. Hopcroft, Jefferey D. Ullman, Volume 1 & Volume 2 Prentice-Hall Series in Automatic Computation,1972
- 国内的编译原理教材
- labs of minidecaf compilers : 实验覆盖词法分析,语法分析,语义分析,后端代码生成等编译器的完整执行过程。
- 2021编译课程在线小实验
希望看看编译技术如何用在科研方面或工程项目方面的同学可看看相关论文和对应的project