阅读 chibicc 笔记

从 chibicc 中学习编译原理和指令集。

1写在前面
2Week 1
3Week 2
4Week 3
5未完待续......

序言

这里是我阅读 chibicc 留下的一些笔记。

chibicc 是一个小的 C 编译器实现。通过阅读它,能够快速了解基础的编译原理和 CPU 指令集的知识。

读者可以通过 [1] 来下载相关代码。不过为了流畅的阅读体验,我有意在正文中插入了关键的代码,使得读者可以不用获取代码也能阅读下去。

作者 rui314 的 chibicc 非常容易阅读,提交也拆分得很合理。我在这里补充了更多的上下文,从 GCC、汇编指令解释到相关编译原理解释。希望能对朋友们有些帮助。

鉴于我对编译原理、指令集等都了解浅薄,这些笔记也多是起到了一点抛砖引玉的作用,不免挂一漏万。如有行文不顺之处,或者出现错误,还望大家不吝斧正。

链接和引用

  1. GitHub / Rui314 / chibicc: https://github.com/rui314/chibicc
  2. 《深入理解计算机系统》,原书第 3 版,Randal E. Bryant,David R. O'Hallaron 著,龚奕达,贺连译,机械工业出版社。
  3. AMD / AMD64 Architecture Programmer's Manual Volume 3: https://www.amd.com/content/dam/amd/en/documents/processor-tech-docs/programmer-references/24594.pdf
  4. System V Application Binary Interface: AMD64 Architecture Processor Supplement Draft Version 0.99.7: https://www.uclibc.org/docs/psABI-x86_64.pdf