可能重复:
引导语言
为以目标语言编写的给定语言(例如PyPy)配备解释器的重要性是什么?
与其说是自己编写解释器,不如说是用高级语言而不是 C 语言编写解释器。理想情况下,这样做可以更改实现的细节,并使解释器更加模块化。
对于 PyPy 的特定情况,在 (R)Python 中编写解释器和核心对象允许为目标(C、JVM、.NET、JavaScript 等)重新定位 PyPy,还允许替换垃圾收集器等方面。
我确信这样做有很多不同的原因。在某些情况下,这是因为你真的相信语言是最好的工具......所以用语言本身编写语言解释器或编译器可以被视为一种狗食形式。如果您真的对这个主题感兴趣,那么下面的文章是一篇关于 squeak 发展的非常精彩的读物。当前版本的 squeak 是一个用 smalltalk 编写的 smalltalk 运行时。
这样,您可以证明目标语言是严肃的事情,因为能够使其编译某些东西表明它是一门好语言。
好的,C++ 和 Java 也产生编译器......所以也许这个论点只是看起来的一半。
另一个好处是,如果您为目标语言实现了良好的调试器和 IDE,它们也适用于您的源语言。