diff --git a/docs/编译原理/CS420.en.md b/docs/编译原理/CS420.en.md index 3f23e657..8534f7fb 100644 --- a/docs/编译原理/CS420.en.md +++ b/docs/编译原理/CS420.en.md @@ -1,4 +1,4 @@ -# Course Code: Course Name +# CS420: Compiler Design ## Descriptions @@ -8,19 +8,10 @@ - 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: +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, include AST print, SSA-based IR generation, IR optimization and RISC-V assembly generation. Compared to other 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. +- This course emphasizes on practicality. It does not talk much about the theory of compiler frontend and the assignments start with the traversal of AST so you do not need to build the frontend yourself. The course mainly focuses on IR design, generation and optimization, as well as RISC-V assembly code generation. This course is also helpful for understanding and learning LLVM. - The course comes with accompanying videos that provide detailed code tours, which is beginner-friendly. ## Course Resources @@ -29,4 +20,3 @@ This course provides a compiler framework code called KECC(KAIST Educational C C - Recordings: - Textbooks: - Assignments: - diff --git a/docs/编译原理/CS420.md b/docs/编译原理/CS420.md index 9b5098c0..b9a0214d 100644 --- a/docs/编译原理/CS420.md +++ b/docs/编译原理/CS420.md @@ -8,18 +8,10 @@ - 课程难度:🌟🌟🌟🌟 - 预计学时:80小时 - +这门课程提供了一个 Rust 语言编写的编译器 KECC(KAIST Educational C Compiler) 框架代码,在此基础上构建编译器的一些核心部分,包括语法树打印、SSA中间代码生成、中间代码优化(包括 CFG 简化,GVN 等)以及目标代码生成。与其他编译器课程相比,本课程主要有以下特点: -这门课程提供了一个Rust语言编写的编译器KECC(KAIST Educational C Compiler) 框架代码,在此基础上构建编译器的一些核心部分。与大部分编译器课程相比,本课程主要有以下特点: - -- 该课程面向真实的C语言而非自定义的玩具语言,并且会使用C语言Fuzzing工具 (Csmith) 进行测试。 -- 该课程不像传统编译器课程十分强调前端部分,仅第一个作业涉及前端并带领你熟悉抽象语法树的结构。课程重点关注于IR的设计、生成和优化,以及RISC-V汇编代码的生成。 +- 该课程面向真实的 C 语言而非自定义的玩具语言,并且会使用 C 语言 Fuzzing 工具 (Csmith) 进行测试。 +- 该课程注重实用性,对编译器前端理论涉及很少,第一个实验也是直接从抽象语法树的遍历开始,并不要求你手动完成前端。课程重点关注于 IR 的设计、生成和优化,以及 RISC-V 汇编代码生成。本课程对于理解和学习 LLVM 也很有帮助。 - 课程配套视频有详细的代码讲解,对初学者友好。 ## 课程资源