[Compiler 笔记 (1)]:寻找适合 trace 的专案

动机

这学期上了 compiler 的课程,但学校教的东西都比较偏理论,所以最近想要看看真正的 compiler 是怎么写出来的,于是找了一些专案来读读看。

看了几个专案的心得

1. gcc:

说到 compiler 第一个让人想到的就是 gcc 了,所以一开始就尝试 trace gcc,但后来发现因为这个专案包含了许多语言的 compiler,所以一开始光是看整体的架构就有些吃力了,于是放弃继续读 gcc。

2. tcc 以及 lcc:

我的感觉差不多,比 gcc 容易读的许多,但还是没有很容易读(因为笔者能力不足呜呜),我会有点难以把学校教的东西对应到程式码当中。

3. c4:

超级精简的 compiler,总共只有 4 个 function,但反而精简到不太清楚哪些程式码在做些什么(笔者也太挑XD)有种把 parser, codegen, vm, 都混杂在一起的感觉,不过确实写的很简化又很帅。

4. chibic:

笔者觉得最适合自己的专案,功能完整却又不会太複杂,以 cc1() 这个 function 来说明,里面就可以看到 scanner(tokenizer), parser, codegen 这几个上课题过的步骤分别呼叫了哪些 function 来完成,比较能够与学过的理论做连结。

结论

有时候看不懂的专案还是放弃继续研究、寻找更适合自己的比较好XD,之后打算参考 chibic 的架构来写出一个功能勉强堪用的 C compiler。


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章