Rust编程语言究竟是如何实现的?

如果您在github rust lang 编译器存储库中检查语言百分比,它会说rust lang 编译器的97.6% 是用 rust 编写的。那么这究竟是如何工作的呢?如何创建自己编写的编程语言(我认为这与编译器有关,因为它是阅读代码的人,不是吗?)。

回答

这称为自托管或引导。基本思路是这样的:

  1. 使用您选择的其他编程语言为一小部分 Rust 编写初始编译器。您现在拥有编译器 C0。
  2. 使用你有编译器的 Rust 子集,完全用 Rust 重写 C0 的源代码。使用编译器 C0 编译该程序以形成编译器 C1。
  3. 通过向您刚刚编写的编译器添加代码来正确解析和实现这些功能,从而向 Rust 添加功能。使用 C1 编译该 Rust 程序以形成编译器 C2。

通过根据需要多次重复步骤 (3),您可以逐渐向 Rust 语言添加越来越多的功能,而 Rust 编译器始终是用 Rust 本身编写的。

有一个名为Reflections on Trusting Trust的著名演讲,它讨论了这个过程是如何运作的,以及如何使用这个过程来做邪恶的事情。


以上是Rust编程语言究竟是如何实现的?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>