【发布时间】:2010-12-02 09:35:18
【问题描述】:
我了解一种语言如何自举,但我找不到太多关于为什么应该考虑自举的参考资料。
直观的答案是,您正在编写的语言提供了在编译器的“基础”语言中找不到的实用程序,并且该语言的功能相对适合编译器。
例如,引导 C++ 编译器是有意义的——当正确使用 OOP 时,与使用纯 C 相比,维护编译器可能更容易。
另一方面,MATLAB 确实使矩阵数学比普通 C 容易得多,但我看不到在 MATLAB 中编写 MATLAB 编译器/解释器有任何明显的好处——它似乎会变得 less 可维护。类似的观点可以应用于 R 编程语言。或者一个非常极端的例子是引导 Whitespace,它是用 Haskell 编写的——绝对是一个巨大的super空白集。
引导是利用新语言功能的唯一原因吗?我知道还有“因为我们可以”的原因,但这不是我想要的:)
【问题讨论】:
-
空白实际上是相当可维护的。你只需要使用语法高亮。 :)
标签: compiler-construction theory bootstrapping