Go to file
Shao-Ce SUN d5c3e7753a [316] 使结构体成员可以通过=或?:访问 2023-06-04 00:02:45 +08:00
.github/workflows [315] 更新项目相关文件 2023-06-04 00:02:45 +08:00
include [310] 完善stdatomic.h 2023-06-04 00:02:45 +08:00
test [316] 使结构体成员可以通过=或?:访问 2023-06-04 00:02:45 +08:00
.gitignore [306] 增加脚本测试第三方程序 2023-06-04 00:02:45 +08:00
CMakeLists.txt [285] 支持字符串哈希表 2023-06-04 00:02:45 +08:00
LICENSE [1] 编译出能返回指定数值的程序 2022-10-04 20:47:54 +08:00
Makefile [306] 增加脚本测试第三方程序 2023-06-04 00:02:45 +08:00
README.md [315] 更新项目相关文件 2023-06-04 00:02:45 +08:00
codegen.c [316] 使结构体成员可以通过=或?:访问 2023-06-04 00:02:45 +08:00
hashmap.c [285] 支持字符串哈希表 2023-06-04 00:02:45 +08:00
main.c [305] 支持-Xlinker选项 2023-06-04 00:02:45 +08:00
parse.c [314] 支持__attribute__((aligned(N))) 2023-06-04 00:02:45 +08:00
preprocess.c [310] 完善stdatomic.h 2023-06-04 00:02:45 +08:00
rvcc.h [313] 支持__attribute__((packed)) 2023-06-04 00:02:45 +08:00
string.c [155] 使用-S时调用as 2023-06-04 00:02:45 +08:00
tokenize.c [313] 支持__attribute__((packed)) 2023-06-04 00:02:45 +08:00
type.c [308] 支持原子交换操作 2023-06-04 00:02:45 +08:00
unicode.c [245] 改进多字节字符的报错信息 2023-06-04 00:02:45 +08:00

README.md

rvcc

本课程基于Rui的chibicc@sunshaoce和@ksco将其由原来的X86架构改写为RISC-V 64架构同时加入了大量的中文注释并且配有316节对应于每一个commit的课程帮助读者可以层层推进、逐步深入的学习编译器的构造。

rvcc课程资料

课程用到的资料环境构建Q&A等都在rvcc-course

如需发起Issue或者PR或者是其他问题也请访问https://github.com/sunshaoce/rvcc-course

构建

项目的构建命令为:make

可选项目使用CMake的构建命令为

cmake -Bbuild .
cd build/
make

RISC-V介绍

RISC-V是一个开源的精简指令集相较于常见的X86、ARM架构其简单易学并且发展迅猛。现在已经出现了支持RISC-V的各类设备未来还将出现RISC-V架构的笔记本电脑可谓是前景一片光明。

chibicc

chibicc是Rui开发的一个X86架构的迷你编译器。Rui同时也是8cc、9cc、mold、lld等著名项目的主要开发者chibicc是他最新的编译器项目。chibicc项目以commit为阶段借助于316个commits实现了一个能够编译Git等项目的C编译器同时层层深入的课程也大大降低了难度帮助更多人来上手chibicc。

TODOs

这里记录一些需要修复的问题。