[COURSE] Add SJTU SE3355: Compiler Course (#727)
* Add SJTU Compiler Course * Update Index * Fix Indentation
This commit is contained in:
parent
a74ddd98d3
commit
57eecf19f2
|
|
@ -0,0 +1,29 @@
|
|||
# SJTU Compiler Principles
|
||||
|
||||
## Course Introduction
|
||||
|
||||
- Offered by: Shanghai Jiao Tong University
|
||||
- Prerequisites: Basic Computer Systems, Data Structures and Algorithms, Programming Fundamentals
|
||||
- Programming Language: C++
|
||||
- Course Difficulty: 🌟🌟🌟🌟
|
||||
- Class Hour: 150 hours
|
||||
|
||||
The Compiler Principles course at Shanghai Jiao Tong University aims to implement a compiler for the Tiger language. In this course, you will learn about lexical analysis, grammar analysis, semantic analysis, escape analysis, activation records (stack frames), LLVM IR, liveness analysis, register allocation, garbage collection, object-oriented programming, functional programming, and many other topics. Similar to the Compiler Principles course at Peking University, this course offers you a great deal of freedom. The test programs will only check the correctness of the assembly code you output and will not impose any restrictions on the specific design of your compiler. You will need to build your own compiler step by step from scratch.
|
||||
|
||||
In this course, you will learn how to use frameworks such as `flexc++`, `Bisonc++`, and `LLVM`, and enhance your debugging skills through practice. The theoretical part of the course is taught by teachers from the IPADS Laboratory at Shanghai Jiao Tong University.
|
||||
|
||||
## Course Resources
|
||||
|
||||
- Course Website: <https://ipads.se.sjtu.edu.cn/courses/compilers/index.shtml>
|
||||
- Slides: See the course website
|
||||
- Framework Code: See GitHub
|
||||
- Course Textbook: "Tiger Book" (Modern Compiler Implementation in C)
|
||||
- 2 Quizzes + 6 Labs
|
||||
- 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
|
||||
|
|
@ -0,0 +1,33 @@
|
|||
# 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
|
||||
|
|
@ -242,6 +242,7 @@ nav:
|
|||
- "NJU 编译原理": "编译原理/NJU-Compilers.md"
|
||||
- "KAIST CS420: Compiler Design": "编译原理/CS420.md"
|
||||
- "USTC 编译原理与技术": "编译原理/USTC-Compilers.md"
|
||||
- "SJTU 编译原理": "编译原理/SJTU-Compilers.md"
|
||||
- 编程语言设计与分析:
|
||||
- "Stanford CS242: Programming Languages": "编程语言设计与分析/CS242.md"
|
||||
- "NJU 软件分析": "编程语言设计与分析/NJU-SoftwareAnalysis.md"
|
||||
|
|
|
|||
Loading…
Reference in New Issue