我了解一种语言如何能够自我引导,但是对于为什么您应该考虑使用 bootstrap ,我却找不到很多引用。
直观的答案是,您正在编写的语言提供了在编译器的“基础”语言中找不到的实用程序,并且该语言的功能相对非常适合于编译器。
例如,引导C++编译器会很有意义-如果正确使用OOP,则与使用普通C相比,维护编译器可能会容易得多。
另一方面,MATLAB的确使矩阵数学比普通C容易得多,但是我看不出在MATLAB中编写MATLAB编译器/解释器有任何明显的好处-看来它变得不太容易维护。类似的观点可以应用于R编程语言。或者举个极端的例子,那就是用Haskell编写的引导Whitespace-绝对是Whitespace的巨大超集。
是 bootstrap 利用新语言功能的唯一原因吗?我知道还有“因为我们可以”的原因,但这不是我要寻找的:)
最佳答案
有一个原则叫做“吃自己的狗粮”。通过使用工具,您可以演示该工具的实用性。
经常被问到:“如果语言X的编译器不是用语言X编写的,为什么还要冒险使用它?”
当然,这仅适用于适合编译器编写 Realm 的语言。
关于compiler-construction - 引导编译器:为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1493747/