mirror of
https://github.com/PKUFlyingPig/cs-self-learning.git
synced 2026-06-26 03:17:01 +08:00
32 lines
1.7 KiB
Markdown
32 lines
1.7 KiB
Markdown
# 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
|
|
|
|
<!--
|
|
Introduce the course in a paragraph or two, including but not limited to:
|
|
(1) The technical knowledge covered in lectures
|
|
(2) Its differences and features compared to similar courses
|
|
(3) Your personal experiences and feelings after studying this course
|
|
(4) Caveats about studying this course on your own (pitfalls, difficulty warnings, etc.)
|
|
(5) ... ...
|
|
-->
|
|
|
|
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:<https://github.com/kaist-cp/cs420>
|
|
- Recordings:<https://www.youtube.com/playlist?list=PL5aMzERQ_OZ8RWqn-XiZLXm1IJuaQbXp0>
|
|
- Textbooks:<https://github.com/kaist-cp/cs420?tab=readme-ov-file#textbook>
|
|
- Assignments:<https://github.com/kaist-cp/cs420?tab=readme-ov-file#homework-60>
|
|
|