可能重复:
Bootstrapping a language
为目标语言编写的给定语言使用口译员的重要性是什么(例如PyPy)?
答案 0 :(得分:7)
与其本身编写解释器的关键不在于此 - 更多的是用高级语言而不是C语言编写解释器。理想情况下,这样做可以更改实现的细节,并使解释器更加模块化。 / p>
对于PyPy的特定情况,在(R)Python中编写解释器和核心对象允许为目标(C,JVM,.NET,JavaScript等)重新定位PyPy,并且还允许替换诸如垃圾收集器。
答案 1 :(得分:2)
我确信这样做有很多不同的原因。在某些情况下,这是因为你真的相信语言是最好的工具......所以用语言本身编写语言解释器或编译器可以看作是一种dogfooding形式。如果您真的对这个主题感兴趣,下面的文章是关于吱吱声发展的真正令人惊叹的读物。当前版本的squeak是一个用smalltalk编写的smalltalk运行时。
答案 2 :(得分:0)
另一个好处是,如果您为目标语言实现了良好的调试器和IDE,那么它们也适用于您的源语言。
答案 3 :(得分:0)
通过这种方式,你可以证明目标语言是严肃的事情,因为能够使它编译成某种东西,这表明它是一种很好的语言。
好的,C ++和Java也会生成编译器......所以也许这个参数只有它看起来好一半。