cs-self-learning/docs/编译原理/SJTU-Compilers.md
xeonliu 57eecf19f2
[COURSE] Add SJTU SE3355: Compiler Course (#727)
* Add SJTU Compiler Course

* Update Index

* Fix Indentation
2025-06-08 00:23:04 +08:00

33 lines
1.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# SJTU 编译原理
## 课程简介
- 所属大学:上海交通大学
- 先修要求:计算机系统基础、数据结构与算法、编程基础
- 编程语言C++
- 课程难度:🌟🌟🌟🌟
- 预计学时150 小时
上海交通大学的编译原理课程旨在实现一个 Tiger 语言的编译器。在这门课上你可以学习到词法分析、文法分析、予以分析、逃逸分析、活动记录栈帧、LLVM IR、活跃分析、寄存器分配、垃圾收集、面向对象、函数式程序等众多话题。和北大的编译原理课程相似该课程给予了你极大的自由度测试程序只会对你输出的汇编代码的正确性进行测试而不会对你编译器的具体设计做任何限制。你需要从一个个空文件中一步步构建出属于你自己的编译器。
在这门课上你将学到`flexc++`、`Bisonc++`、`LLVM`等框架的使用方法,并在练习过程中加强自己的调试能力。
理论部分由上海交通大学 IPADS 实验室的老师讲述。
## 课程资源
- 课程网站:<https://ipads.se.sjtu.edu.cn/courses/compilers/index.shtml>
- 课件:参见课程网站
- 框架代码:参见 GitHub
- 课程教材虎书Modern Compiler Implementation in C
- 2 次Quiz + 6 个Lab
- Lab 1: Straight-line Program Interpreter
- Lab 2: Lexical Analysis
- Lab 3: Parsing
- Lab 4: Type Checking
- Lab 5
- Part 1: Escape Analysis and Translation
- Part 2: Tiger Compiler without register allocation
- Lab 6: Register Allocation