玩酷网

编译器编写之旅github.com/DoctorWkt/acwj这是Doctor

编译器编写之旅

github.com/DoctorWkt/acwj

这是DoctorWkt在github上开的一个编译器教程。教程强调了实践操作,提供了详细的步骤和解释,包括为什么这样做以及相关的编译器理论参考。

教程的目标是:“

⭐要编写一个能够自我编译的编译器。我认为如果编译器能够编译自己,它就可以被称为真正的编译器。

⭐至少要针对一个实际的硬件平台。我见过一些为假设的机器生成代码的编译器。我希望我的编译器能够在实际硬件上运行。此外,如果可能的话,我还想编写这个编译器,使其能够支持不同的硬件平台的多个后端。

⭐实践优先于研究。编译器领域的研究非常多。我想从头开始这段旅程,所以我将倾向于采取一种实践的方法,而不是理论密集的方法。不过,有时我将需要引入(并实现)一些基于理论的东西。

⭐遵循 KISS 原则:保持简单,愚蠢!我将在这里遵循肯·汤普森的原则:“如果有疑问,就使用暴力方法。”

⭐采取很多小步骤来达到最终目标。我会将整个旅程分解成很多简单的步骤,而不是采取大的跳跃。这样可以使每个对编译器的新添加成为一个易于消化的小部分。”