知乎热榜 ( ) • 2024-04-24 13:59
南山烟雨珠江潮的回答

学编译器用C吧,资源比较多,例如著名的c4 c compiler对新手非常友好,只有4个函数,所以名字叫C4,代码也只有500行以内,很多初学者都以它作为入门参考的首选,稍微懂点编译原理的人,抄一遍它的代码,就学会了。

C4还有一个特性就是可以编译它自己,就是说,它实现的是C语言的子集,但是自己也用这个子集编写而成。

gcc -o c4 c4.c
./c4 hello.c
./c4 -s hello.c

./c4 c4.c hello.c  // 编译自己
./c4 c4.c c4.c hello.c

c4已经有9000多star,地址在:

github.com/rswier/c4

参考c4实现的简易编译器并附带详细的中文文档,也有几千star:

github.com/lotabout/wri

这一系列的文章写得不错,转载的人很多,当然也的确是非常优秀的学习资源,任何新手看了都会收获巨大:

加上了中文注释的c4:

github.com/comzyh/c4

英文系列教程可以看这个链接:

norasandler.com/archive