跳转至

课程安排

教学课件

课次 日期 主题和课件 阅读材料
#1 09-07 引论:part1 书本第 1 章
#2 09-09 词法分析:part1, part2, ext 书本第 2 章,ANTLR Lexer Rules, Flex
#3 09-15
#4 09-22 语法分析: part1, part2, part3, part4, part5, part6 书本 3.1-3.6 节,ANTLR Parser Rules, Bison
#5 09-24
#6 09-29
#7 10-11
#8 10-13 语法制导定义和翻译方案: part1, part2, lab-antlr 书本第 4 章
#9 10-15
#10 10-20
#11 10-22
#12 10-27 类型检查:part1, part2 (已更新 2025 版) 书本第 5 章
#13 10-29
期中考试 (11-03 19:00~20:30, 高新区 GT-B111)
#14 11-03 类型检查:part1, part2 (已更新 2025 版) 书本第 5 章
#15 11-05 运行时:part1, part2, part3 书本第 6 章
#16 11-10
#17 11-12 中间表示:part1, part2 书本第 7 章,AICompiler
#18 11-17
#19 11-19 程序语言设计分享
#20 11-24 中间表示:part1, part2 书本第 7 章,AICompiler
#21 11-26
#22 12-01 代码生成:codegen 书本第 8 章
#23 12-08 代码优化:optimize 书本第 9 章和第 10 章
#24 12-17 编译和运行系统:sys 书本第 11 章

作业

作业编号 作业布置日期 作业题号码 截止时间 作业提交方式
10 12-17 作业 9.2 9.15 9.18 9.22 9.27 11.11 11.16 12-24(周三) 头歌作业十 在线提交
9 12-11 作业 7.17 8.1(e) 8.2(e) 8.4(e) 8.3(b) 8.7 8.11 12-18(周四) 头歌作业九 在线提交
8 11-26 新版 PDF,更新第六章习题显示问题 作业 6.6 6.12 6.14 6.15 7.9(给出在自己电脑、鲲鹏和香橙派下的汇编代码并解释) 12-3(周三) 头歌作业八 在线提交
7 11-12 讨论鲲鹏 ABI(calling convention, data format) 12-1(周一) 第七次作业:探索鲲鹏服务器上编译器的行为
6 11-05 新版 PDF,更新 5.4 题目描述 习题 5.4 5.6(5)(6) 5.15 5.16 5.18 11-12(周三) 头歌作业六 在线提交
5 10-24 习题 4.4 4.12 4.12(a) LR 翻译器的栈操作代码 10-29(周三) 头歌作业五 在线提交
4 10-16 习题 3.22、3.24、3.26(b)、3.37 10-23(周四) 头歌作业四 在线提交
3 09-29 习题 3.2、3.8、3.11、3.17、3.19、3.21 10-18(周六) 头歌作业三 在线提交
2 09-17 习题 2.7 习题 2.16 09-24(周三) 头歌作业二 在线提交
1 09-10 习题 2.7(a)(b)(c)、习题 2.3(b)(c)、习题 2.4(a)(c) 09-17(周三) 头歌作业一 在线提交

实验

实验编号 发布时间 实验名称 截止时间
6 12-23 探索实验题目文档 , 公共仓库 TBD
5 11-26 🔗 为 SysYF 语言生成 LLVM IR 中间代码 12-08
4 11-10 🔗 构建 SysYF 语义检查器 11-24
3 10-24 🔗 使用 Flex 和 Bison 构建 SysYF 词法和语法分析器 11-10
2-2 09-29 🔗 ANTLR4 的进阶应用 - 为 C1 语言构造解析器 10-20
2-1 09-29 🔗 ANTLR4 的基础应用 - 为正规式生成解析树 10-13
1 09-18 🔗 L1. 词法分析器的构造 09-29
X2 09-18 🔗 X2. 理解和使用 C++ 的智能指针 (选做) 09-29
X1 09-18 🔗 X1. 理解和使用 C++ 运行时类型信息 (RTTI)(选做) 09-29

头歌平台使用与往期在线实验