# Stanford CS143: Compilers

## 课程简介

- 所属大学：Stanford
- 先修要求：计算机体系结构
- 编程语言：Java 或 C++
- 课程难度：🌟🌟🌟🌟🌟
- 预计学时：150 小时

斯坦福的编译原理课程，设计者开发了一个 Classroom-Object-Oriented-Language，简称 COOL 语言。这门课的核心就是通过理论知识的学习，为 COOL 语言实现一个编译器，将 COOL 高级语言编译为 MIPS 汇编并在 Spim 这个 MIPS 模拟器上成功执行。

理论部分基本按照龙书的顺序覆盖了词法分析、语法分析、语义分析、运行时环境、寄存器分配、代码优化与生成等内容，实践部分则相应地分为词法分析、语法分析、语义分析、代码生成四个阶段，难度循序渐进，并在优化部分给学生留下了很大的设计空间。

## 课程资源

- 课程网站：<http://web.stanford.edu/class/cs143/>
- 课程视频：<https://www.bilibili.com/video/BV17K4y147Bz>
- 课程教材：龙书
- 课程作业：5 个书面作业 + 5 个编程作业带你实现一个编译器

## 资源汇总

@skyzluo 在学习这门课中用到的所有资源和作业实现都汇总在 [skyzluo/CS143-Compilers-Stanford - GitHub](https://github.com/skyzluo/CS143-Compilers-Stanford) 中。
