From 8dd268597bf398c1af89bd11e648e8473476f322 Mon Sep 17 00:00:00 2001 From: zijian yi Date: Wed, 3 Jul 2024 17:29:09 -0500 Subject: [PATCH] [COURSE] Add KAIST CS420: Compiler Design --- docs/编译原理/CS420.en.md | 32 ++++++++++++++++++++++++++++++++ docs/编译原理/CS420.md | 30 ++++++++++++++++++++++++++++++ mkdocs.yml | 1 + 3 files changed, 63 insertions(+) create mode 100644 docs/编译原理/CS420.en.md create mode 100644 docs/编译原理/CS420.md diff --git a/docs/编译原理/CS420.en.md b/docs/编译原理/CS420.en.md new file mode 100644 index 00000000..3f23e657 --- /dev/null +++ b/docs/编译原理/CS420.en.md @@ -0,0 +1,32 @@ +# Course Code: Course Name + +## Descriptions + +- Offered by:·KAIST +- Prerequisites: Data Structures, Basic Understanding of Computer Systems and Rust Programming +- Programming Languages: Rust +- Difficulty: 🌟🌟🌟🌟 +- Class Hour: 80 hours + + + +This course provides a compiler framework code called KECC(KAIST Educational C Compiler) written in Rust, based on which students build some core parts of the compiler. Compared to most compiler courses, this course has the following main characteristics: + +- The course focuses on the real C language rather than a custom toy language, and uses C language fuzzing tools(Csmith) for testing. +- Unlike traditional compiler courses that strongly emphasize the frontend part, only the first assignment is about frontend and gets you familiar with the structure of abstract syntax tree. The course mainly focuses on IR design, generation and optimization, as well as RISC-V assembly code generation. +- The course comes with accompanying videos that provide detailed code tours, which is beginner-friendly. + +## Course Resources + +- Course Website: +- Recordings: +- Textbooks: +- Assignments: + diff --git a/docs/编译原理/CS420.md b/docs/编译原理/CS420.md new file mode 100644 index 00000000..9b5098c0 --- /dev/null +++ b/docs/编译原理/CS420.md @@ -0,0 +1,30 @@ +# CS420: Compiler Design + +## 课程简介 + +- 所属大学:KAIST +- 先修要求:数据结构、计算机系统基础、Rust 编程基础 +- 编程语言:Rust +- 课程难度:🌟🌟🌟🌟 +- 预计学时:80小时 + + + +这门课程提供了一个Rust语言编写的编译器KECC(KAIST Educational C Compiler) 框架代码,在此基础上构建编译器的一些核心部分。与大部分编译器课程相比,本课程主要有以下特点: + +- 该课程面向真实的C语言而非自定义的玩具语言,并且会使用C语言Fuzzing工具 (Csmith) 进行测试。 +- 该课程不像传统编译器课程十分强调前端部分,仅第一个作业涉及前端并带领你熟悉抽象语法树的结构。课程重点关注于IR的设计、生成和优化,以及RISC-V汇编代码的生成。 +- 课程配套视频有详细的代码讲解,对初学者友好。 + +## 课程资源 + +- 课程网站: +- 课程视频: +- 课程教材: +- 课程作业: diff --git a/mkdocs.yml b/mkdocs.yml index 970d063b..4e851e67 100644 --- a/mkdocs.yml +++ b/mkdocs.yml @@ -234,6 +234,7 @@ nav: - "PKU 编译原理实践": "编译原理/PKU-Compilers.md" - "Stanford CS143: Compilers": "编译原理/CS143.md" - "NJU 编译原理": "编译原理/NJU-Compilers.md" + - "KAIST CS420: Compiler Design": "编译原理/CS420.md" - 编程语言设计与分析: - "Stanford CS242: Programming Languages": "编程语言设计与分析/CS242.md" - "NJU 软件分析": "编程语言设计与分析/NJU-SoftwareAnalysis.md"