跳转至

USTC 编译原理和技术 2023

课程信息

课程简介

本课程是计算机科学与技术专业的核心课,旨在深入探讨程序设计语言的设计和实现技术,涵盖与程序设计语言理论相关的知识,并培养学生将课程中学到的概念和技术应用于软件设计和开发的能力。内容包括编译器构建的基本原理,包括词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成。同时,本课程结合现代编译技术和趋势,使用 LLVM 和龙芯后端,基于自主设计的教学实验框架“建木”,设计现代化的编译器工具。

授课信息

公告

  • 2023-09-03:课程平台介绍 已发布
  • 2023-09-08:Lab0 已发布,Deadline:2023 年 9 月 15 日
  • 2023-09-13:第一次作业:2.1a、2.2、2.3a、2.4h、2.7c、2.15(教材1),Deadline:2023 年 9 月 20 日
  • 2023-09-15:Lab1 已发布,Deadline:2023 年 9 月 28 日
  • 2023-09-25:第二次作业:3.1a、3.2a、3.10、3.11、3.17、3.19a(教材1),Deadline:2023 年 10 月 7 日 14:00
  • 2023-10-05:Lab2 已发布,注意分阶段 Deadline
  • 2023-10-11:第三次作业:3.27、3.37、4.3、4.5、4.9(教材1),Deadline:2023 年 10 月 18 日 16:00
  • 2023-11-01:Lab3 已发布,注意分阶段 Deadline
  • 2023-11-01:第四次作业已发布,Deadline:2023 年 11 月 8 日 17:25
  • 2023-11-14:第五次作业:4.13、4.15、5.5、6.5、6.6(教材1),Deadline:2023 年 11 月 21 日 09:00
  • 2023-11-27:Lab4 已发布,Deadline:2023 年 12 月 18 日
  • 2023-12-08:第六次作业:7.2c、7.5、7.12、8.1e、8.2e、8.6(教材1),Deadline:2023 年 12 月 20 日 24:00
  • 2023-12-08:第七次作业:9.1、9.2、9.3、9.15af(教材1),Deadline:2024 年 1 月 3 日 24:00
  • 2024-01-14:建木杯–编译原理创新实验 已发布

教学课件

日期 标题 课件
2023-09-04 编译原理和技术导论 part1
2023-09-06 词法分析 part1, part2, part3
2023-09-11 语法分析 - 上下文无关文法 part1
2023-09-13 语法分析 - 自顶向下 - 递归下降 part2
2023-09-18 语法分析 - 自顶向下 - LL(1) 文法 part3
2023-09-20 语法分析 - 自底向上 - 移进规约 & LR 分析器的简单模型 part4, part5
2023-09-25 语法分析 - 简单的 LR 方法 & 规范的 LR 方法 part6, part7
2023-09-27 中间代码表示 part1
2023-10-07 语法制导翻译 - 语法制导定义 & S/L 属性的定义 part1, part2
2023-10-11 语法制导翻译 - 语法制导翻译方案 & L 属性定义的翻译方案 part3, part4
2023-10-16 中间代码翻译 - 简单语句、控制流与布尔表达式 part1, part2
2023-10-18 中间代码翻译 - 标号回填与布尔表达式 part3
2023-10-30 中间代码翻译 - 标号回填与控制流语句 part4
2023-11-01 中间代码翻译 - 类型表达式 & 符号表与声明语句 part5, part6
2023-11-06 中间代码翻译 - 数组寻址 & 运行时管理 - 存储组织 part7, part1
2023-11-08 运行时管理 - 栈式分配 & 代码生成 - 概述与简单机器模型 part2, part1
2023-11-13 机器无关代码优化 - 常见的优化方式 part1
2023-11-15 机器无关代码优化 - 数据流与到达定值、可用表达式分析、数据流与活跃变量分析 part2, part3, part4
2023-11-20 机器无关代码优化 - 数据流与活跃变量分析、基本块内的优化 & 寄存器分配方法 part4, part5, part1
2023-11-22 静态类型检查 & 流图中的循环 part1, part1
2023-11-27 运行时刻环境 - 非局部变量的访问 part2
2023-11-29 面向目标机器的代码优化 part1
2023-12-04 guest lecture 无 slides
2023-12-06 guest lecture 无 slides
2023-12-13 复习课 slides

参考资料

教材和参考书

  • [1] 陈意云、张昱,编译原理(第 3 版),高等教育出版社,2014
  • [2] 李诚、徐伟,现代编译器设计与实现(实验讲义版本,高等教育出版社待出版,2023)。教材资源及实验框架
  • A. V. Aho, M. S. Lam, R. Sethi, and J. D. Ullman 著,赵建华等译,编译原理,机械工业出版社,2017

其他资料