Differences between revisions 2 and 3
Revision 2 as of 2007-03-31 18:35:08
Size: 2364
Editor: HuangYi
Comment:
Revision 3 as of 2007-03-31 18:43:03
Size: 2636
Editor: HuangYi
Comment:
Deletions are marked like this. Additions are marked like this.
Line 6: Line 6:
pypy 这名字说的就是这第一部分:用python实现的python。但其实这么说并不准确,准确得说其实是用 rpython 实现的 python ,rpython 是 python 的一个子集,不过不要搞混了,虽然 rpython 不是完整的 python ,但用 rpython 写的这个 python 实现却是可以解释完整的 python 语言。 pypy 这名字说的就是这第一部分:用python实现的python。但其实这么说并不准确,准确得说其实是用 rpython 实现的 python ,rpython 是 python 的一个子集,不过不要搞混了,虽然 rpython 不是完整的 python ,但用 rpython 写的这个 python 实现却是可以解释完整的 python 语言(目前针对的目标是python2.4)
Line 10: Line 10:
这是一个编译 rpython 的编译器,或者说这个编译器有一个 rpython 的前端,目前也只这么一个前端,不过它的后端却是不少,就是这个编译器支持许多的目标语言,比较重要的有:c, cli, javascript ... 这是一个编译 rpython 的编译器,或者说这个编译器有一个 rpython 的前端(实际上还人写了一个 [http://codespeak.net/pypy/dist/pypy/doc/prolog-interpreter.html prolog 的前端]),它的后端却是不少,换句话说就是这个编译器支持许多的目标语言,比较重要的有:c, cli, javascript ...
Line 12: Line 12:
而当我们把这两部分合起来看的时候,就能够发现 pypy 最重大的意义所在,当我们用这个编译器来编译这个用 rpython 写的 python 实现,我们能够得到什么呢?一个 c 写的 python 实现,一个用 .net 写的 python 实现(不目前的 cli 后端不能用来编译这个 python 实现) ... 而当我们把这两部分合起来看的时候,就能够发现 pypy 最重大的意义所在,当我们用这个编译器来编译这个用 rpython 写的 python 实现,我们能够得到什么呢?一个 c 写的 python 实现,一个用 .net 写的 python 实现 ...

并且在虚拟机的转换
程中,还可以选择性的加入许多虚拟机的“方面”,比如 线程支持,使用何种自动内存管理算法(GC),stackless、coutine 支持,有众多的语言特性。

TableOfContents

PyPy

简介

[http://pypy.org PyPy] 是一个虚拟机项目,主要分为两部分:一个 python 的实现 和 一个编译器。

pypy 这名字说的就是这第一部分:用python实现的python。但其实这么说并不准确,准确得说其实是用 rpython 实现的 python ,rpython 是 python 的一个子集,不过不要搞混了,虽然 rpython 不是完整的 python ,但用 rpython 写的这个 python 实现却是可以解释完整的 python 语言(目前针对的目标是python2.4)。

那为什么要用 rpython 来写这个 python 实现呢,这其实就涉及到了 pypy 的第二部分:编译器。

这是一个编译 rpython 的编译器,或者说这个编译器有一个 rpython 的前端(实际上还有人写了一个 [http://codespeak.net/pypy/dist/pypy/doc/prolog-interpreter.html prolog 的前端]),它的后端却是不少,换句话说就是这个编译器支持许多的目标语言,比较重要的有:c, cli, javascript ...

而当我们把这两部分合起来看的时候,就能够发现 pypy 最重大的意义所在,当我们用这个编译器来编译这个用 rpython 写的 python 实现,我们能够得到什么呢?一个 c 写的 python 实现,一个用 .net 写的 python 实现 ...

并且在虚拟机的转换过程中,还可以选择性的加入许多虚拟机的“方面”,比如 线程支持,使用何种自动内存管理算法(GC),stackless、coutine 支持,还有众多的语言特性。

体验

资源

PyPy (last edited 2009-12-25 07:09:48 by localhost)