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