如果我有翻译,为什么要使用Parrot(或其他VM)?

Jak*_* M. 5 python perl interpreter parrot vm-implementation

如果我已经有一个解释器,我为什么要使用像Parrot这样的VM来使用我使用的动态语言(Python,Perl,...)?我可以获得什么,在我的代码和我的机器之间使用不同的VM,以及使用单独的解释器的成本?

(我是VM问题的新手,所以答案很明显)

编辑

Parrot VM对最终用户有什么好处?

Max*_*ert 5

如果我已经有一个解释器,我为什么要使用像Parrot这样的VM来使用我使用的动态语言(Python,Perl,...)?

首先,如果你正在开始一个项目,那么你可能还没有翻译.

但是,假设你有一个解释器并且正在考虑是否要为它添加功能或重写它以使用Parrot,那么我们想到的权衡是:

  • 一般来说,Parrot可能比有问题的解释器更好测试(更好的优化器,更好的垃圾收集器等)
  • 总的来说,Parrot的开发人员比普通的程序员更了解跨平台问题
  • 一般来说,Parrot已经解决了你可能遇到的大多数问题
  • 鹦鹉的设计考虑到了完全的通用性,增加了大量的复杂性; 你可能不需要额外的一般性

就个人而言,Parrot的优化器(以及基于寄存器的设计,主要是为了使优化变得更容易)和经过良好测试的跨平台代码库足以说服我.