为什么要用目标语言编写语言翻译?

时间:2008-11-09 20:25:31

标签: interpreter

  

可能重复:
  Bootstrapping a language

为目标语言编写的给定语言使用口译员的重要性是什么(例如PyPy)?

4 个答案:

答案 0 :(得分:7)

与其本身编写解释器的关键不在于此 - 更多的是用高级语言而不是C语言编写解释器。理想情况下,这样做可以更改实现的细节,并使解释器更加模块化。 / p>

对于PyPy的特定情况,在(R)Python中编写解释器和核心对象允许为目标(C,JVM,.NET,JavaScript等)重新定位PyPy,并且还允许替换诸如垃圾收集器。

答案 1 :(得分:2)

我确信这样做有很多不同的原因。在某些情况下,这是因为你真的相信语言是最好的工具......所以用语言本身编写语言解释器或编译器可以看作是一种dogfooding形式。如果您真的对这个主题感兴趣,下面的文章是关于吱吱声发展的真正令人惊叹的读物。当前版本的squeak是一个用smalltalk编写的smalltalk运行时。

http://users.ipa.net/~dwighth/squeak/oopsla_squeak.html

答案 2 :(得分:0)

另一个好处是,如果您为目标语言实现了良好的调试器和IDE,那么它们也适用于您的源语言。​​

答案 3 :(得分:0)

通过这种方式,你可以证明目标语言是严肃的事情,因为能够使它编译成某种东西,这表明它是一种很好的语言。

好的,C ++和Java也会生成编译器......所以也许这个参数只有它看起来好一半。