跳到主要内容

CMU 15-411 编译器设计

课程名称: Compiler Design
课程官网地址: 2020年秋课程官网
先修课程: 15-213 计算机系统概论
重要程度: ※※※※※
课程评点: 本课目前没有对外开放的视频,可以参考一下本课的课件、作业和资源

课程说明

15-122 命令式计算原理这门课会学习到 C0(类C的)编程语言,而本课则是为这门编程语言写编译器,因此强烈建议先学习C0,同时强烈建议选择具有代数数据类型和模式匹配的静态类型语言,如SML、OCaml 和 Haskell等。

本课程涵盖高级语言的编译器和运行时系统的设计和实现,并研究语言设计、编译器设计和运行时组织之间的相互作用。涵盖的主题包括语法和词法分析、用户定义类型的处理和类型检查、上下文分析、代码生成和优化以及内存管理和运行时组织。学习目标:

  • 区分最先进的编译器的主要阶段
  • 理解命令式语言的静态和动态语义
  • 使用解析器生成器和组合器开发解析器和词法分析器
  • 执行语义分析
  • 将抽象语法树转换为中间表示和静态单赋值形式
  • 用命令式语言分析数据流
  • 执行标准编译器优化
  • 为现代架构生成高效的汇编代码
  • 使用图形着色算法分配寄存器
  • 了解编译器优化的机会和限制
  • 了解表示如何影响优化的设计权衡
  • 使用垃圾收集自动管理内存
  • 遵循高级规范开发复杂的软件

推荐教材

这本书是编译器三大神书“龙虎鲸”里的虎书(英文版封面有一只老虎),这本书有三个不同的版本分别为C语言描述、Java语言描述、ML语言描述,其中MIT的6.035使用的是Java,哈佛CS153、CMU 15-411、普林斯顿COS320 使用的是ML,不过目前国内出版的只有C语言描述。

电子书:现代编译原理 ML语言描述 英文版 提取码: p5t6

电子书:现代编译原理 Java语言描述 英文版 提取码: p5t6 链接: 提取码: 9gg3