[COURSE] Add USTC Principles and Techniques of Compiler (#671)
This commit is contained in:
parent
0f98fc26d8
commit
bc10573cdb
|
|
@ -0,0 +1,23 @@
|
|||
# USTC: Principles and Techniques of Compiler
|
||||
|
||||
## Descriptions
|
||||
|
||||
- Offered by: University of Science and Technology of China (USTC)
|
||||
- Prerequisites:
|
||||
- Programming Languages:
|
||||
- Difficulty: 🌟🌟🌟🌟
|
||||
- Class Hour: 100 hours
|
||||
|
||||
The theoretical part of this course covers a wide range of topics, including lexical analysis, syntax analysis, syntax-directed translation, and intermediate code translation from traditional compiler principles courses, as well as runtime management and both machine-independent and machine-specific code optimization. The practical component provides C++ code for the Cminusf compiler framework, allowing students to progressively build a fully functional modern compiler over six labs. Unlike other compiler courses, this course uses a subset of modern LLVM as the intermediate code, offering a forward-looking approach and including backend code generation and intermediate code optimization, making it a world-class compiler course.
|
||||
|
||||
- The course labs use scripts to provide comprehensive automated testing, with complete tutorials available on the course homepage.
|
||||
- The course includes a full set of open-source course materials, lab framework code, and lab tutorials, making it beginner-friendly.
|
||||
- The labs progress gradually, increasing in difficulty, ensuring that students with varying levels of prior knowledge can benefit.
|
||||
- In Lab 1, Flex and Bison are used to implement the compiler frontend. Lab 2 involves generating intermediate code with LightIR (a subset of LLVM). Lab 3 covers backend code generation for the Loongson assembly language. Lab 4 focuses on intermediate code optimization. Lab 5 implements machine-independent optimization, and Lab 6 deals with register allocation.
|
||||
|
||||
## Course Resources
|
||||
|
||||
- Course Website: <https://ustc-compiler-principles.github.io/2023>
|
||||
- Recordings: <https://www.bilibili.com/video/BV1D7421N7c4>
|
||||
- Textbook: See the course website
|
||||
- Assignments: <https://ustc-compiler-principles.github.io/textbook>
|
||||
|
|
@ -0,0 +1,23 @@
|
|||
# USTC: Principles and Techniques of Compiler
|
||||
|
||||
## 课程简介
|
||||
|
||||
- 所属大学:中国科学技术大学
|
||||
- 先修要求:数据结构、计算机系统基础、C++ 编程基础
|
||||
- 编程语言:C++
|
||||
- 课程难度:🌟🌟🌟🌟
|
||||
- 预计学时:100小时
|
||||
|
||||
这门课程的理论部分内容广泛,既涵盖了传统编译原理课程的词法分析、语法分析、语法制导翻译、中间代码翻译,又覆盖了运行时管理、机器无关与面向机器的代码优化。实验部分则提供了 C++ 语言编写的Cminusf编译器框架代码,于6个实验中逐步构建一个具备现代完整流程的编译器。与其他编译原理课程的实验不同的是,本课程的实验采用现代LLVM的子集作为中间代码,更具前瞻性,同时包括了后端代码的生成和中间代码优化的部分,堪称国际一流的编译原理课程。
|
||||
|
||||
- 课程实验使用脚本提供全面的自动化测试,并于课程主页提供了完整的教程。
|
||||
- 课程包含全套开源的课件、实验框架代码、实验教程,对初学者友好。
|
||||
- 课程实验循序渐进,逐渐增加难度,能让不同基础的学生都有收获。
|
||||
- 课程实验中Lab1使用Flex和Bison实现编译器前端,Lab2实现LightIR(LLVM子集)中间代码生成,Lab3实现后端代码生成龙芯汇编语言,Lab4实现中间代码优化,Lab5实现机器无关优化,Lab6实现寄存器分配。
|
||||
|
||||
## 课程资源
|
||||
|
||||
- 课程网站:<https://ustc-compiler-principles.github.io/2023>
|
||||
- 课程视频:<https://www.bilibili.com/video/BV1D7421N7c4>
|
||||
- 课程教材:见课程网站
|
||||
- 课程作业:<https://ustc-compiler-principles.github.io/textbook>
|
||||
|
|
@ -235,6 +235,7 @@ nav:
|
|||
- "Stanford CS143: Compilers": "编译原理/CS143.md"
|
||||
- "NJU 编译原理": "编译原理/NJU-Compilers.md"
|
||||
- "KAIST CS420: Compiler Design": "编译原理/CS420.md"
|
||||
- "USTC 编译原理与技术": "编译原理/USTC-Compilers.md"
|
||||
- 编程语言设计与分析:
|
||||
- "Stanford CS242: Programming Languages": "编程语言设计与分析/CS242.md"
|
||||
- "NJU 软件分析": "编程语言设计与分析/NJU-SoftwareAnalysis.md"
|
||||
|
|
|
|||
Loading…
Reference in New Issue