在哪里可以了解有关PyPy的翻译功能的更多信息?

时间:2020-03-05 18:43:10  来源:igfitidea点击:

我一直很难理解PyPy的翻译。从简单阅读说明看,这似乎是绝对革命性的东西,但是我很难找到有关将实际代码片段实际转换为LLVM之类的良好文档的信息。这样的事情存在吗?关于它的官方PyPy文档只是略过功能,而没有提供我可以尝试的任何东西。

解决方案

回答

我们是在寻找特定于Python的翻译,还是只是一般的"如何将某些代码编译为字节码"?如果我们是后者,请查看LLVM教程。我特别发现第二章很有趣,它教我们用自己的语言编写编译器。

回答

该文档似乎涉及了很多细节(我认为完整的描述超出了stackoverflow答案的范围):

  • http://codespeak.net/pypy/dist/pypy/doc/translation.html

从一种语言翻译成另一种语言的一般想法并不是特别具有革命性,但直到最近才在"现实世界"应用程序中获得普及/适用性。 GWT使用Java(生成Javascript)来做到这一点,并且还有一个用于将Haskell转换成各种其他语言的库(称为YHC)

回答

如果我们需要一些动手的示例,PyPy的入门文档中有一个标题为"试用翻译器"的部分。

回答

通常,PyPy转换器不适合更多公众使用。我们用它来翻译
我们自己的python解释器(包括均用RPython编写的JIT和GC),
Python的子集)。这个想法是,有了良好的JIT和GC,我们甚至可以加快速度
不了解或者不使用PyPy的翻译工具链(更重要的是,
限制自己使用RPython)。

干杯,
斐济

回答

It looks like something absolutely revolutionary from simply reading the description,

据我所知,PyPy是新颖的,因为它是第一个专门设计用于实现语言的系统。存在其他工具来帮助大部分前端,例如解析器生成器,或者用于后端(例如代码生成),但是用于连接两者的工具并不多。