Size: 2343
Comment: PyPy!
|
← Revision 7 as of 2009-12-25 07:09:48 ⇥
Size: 2676
Comment: converted to 1.6 markup
|
Deletions are marked like this. | Additions are marked like this. |
Line 1: | Line 1: |
<<TableOfContents>> | |
Line 3: | Line 4: |
[http://pypy.org PyPy] 是一个虚拟机项目,主要分为两部分:一个 python 的实现 和 一个编译器。 | [[http://pypy.org|PyPy]] 是一个虚拟机项目,主要分为两部分:一个 python 的实现 和 一个编译器。 |
Line 5: | 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 9: | Line 10: |
这是一个编译 rpython 的编译器,或者说这个编译器有一个 rpython 的前端,目前也只有这么一个前端,不过它的后端却是不少,也就是说这个编译器支持许多的目标语言,比较重要的有:c, cli, javascript ... | 这是一个编译 rpython 的编译器,或者说这个编译器有一个 rpython 的前端(实际上还有人写了一个 [[http://codespeak.net/pypy/dist/pypy/doc/prolog-interpreter.html|prolog 的前端]]),它的后端却是不少,换句话说就是这个编译器支持许多的目标语言,比较重要的有:c, cli, javascript ... |
Line 11: | Line 12: |
而当我们把这两部分合起来看的时候,就能够发现 pypy 最重大的意义所在,当我们用这个编译器来编译这个用 rpython 写的 python 实现,我们能够得到什么呢?一个 c 写的 python 实现,一个用 .net 写的 python 实现(不过目前的 cli 后端还不能用来编译这个 python 实现) ... | 而当我们把这两部分合起来看的时候,就能够发现 pypy 最重大的意义所在,当我们用这个编译器来编译这个用 rpython 写的 python 实现,我们能够得到什么呢?一个 c 写的 python 实现,一个用 .net 写的 python 实现 ... 并且在虚拟机的转换过程中,还可以选择性的加入许多虚拟机的“方面”,比如 线程支持,使用何种自动内存管理算法(GC),stackless、coutine 支持,还有众多的语言特性。 |
Line 14: | Line 17: |
* [http://play1.codespeak.net/ http://play1.codespeak.net/] 在浏览器中试验 PyPy 虚拟机,此 ajax 程序本身就是由 PyPy 编译而成! * [http://codespeak.net/download/pypy/pypy-1.0.0-win32.zip 下载预编译好的 pypy 虚拟机],可以直接用来试验。 * [http://docs.google.com/Doc?id=dczg8vtk_24g5sdrr Trying out PyPy] HuangYi 对 PyPy 编译器的简单实验惊叹于其智能的优化! |
* [[http://play1.codespeak.net/|http://play1.codespeak.net/]] 在浏览器中试验 PyPy 虚拟机,此 ajax 程序本身就是由 PyPy 编译而成! * [[http://codespeak.net/download/pypy/pypy-1.0.0-win32.zip|下载预编译好的 pypy 虚拟机]],可以直接用来试验。 * [[http://docs.google.com/Doc?id=dczg8vtk_24g5sdrr|Trying out PyPy]] HuangYi 对 PyPy 编译器的简单实验惊叹于其智能的优化! |
Line 19: | Line 22: |
* [http://pypy.org/ PyPy 首页] * [http://codespeak.net/pypy/dist/pypy/doc/index.html PyPy 文档首页] * [http://codespeak.net/pypy/dist/pypy/doc/getting-started.html getting started] * [http://codespeak.net/pypy/dist/pypy/doc/architecture.html 体系结构] * [http://codespeak.net/pypy/dist/pypy/doc/video-index.html 大量精彩视频!] * [http://codespeak.net/pypy/dist/pypy/doc/coding-guide.html#restricted-python rpython] * [http://codespeak.net/pypy/dist/pypy/doc/stackless.html Stackless and coroutines] * [http://codespeak.net/pypy/dist/pypy/doc/js/ compile rpython to javascript] |
* [[http://pypy.org/|PyPy 首页]] * [[http://codespeak.net/pypy/dist/pypy/doc/index.html|PyPy 文档首页]] * [[http://codespeak.net/pypy/dist/pypy/doc/getting-started.html|getting started]] * [[http://codespeak.net/pypy/dist/pypy/doc/architecture.html|体系结构]] * [[http://codespeak.net/pypy/dist/pypy/doc/video-index.html|大量精彩视频!]] * [[http://codespeak.net/pypy/dist/pypy/doc/coding-guide.html#restricted-python|rpython]] * [[http://codespeak.net/pypy/dist/pypy/doc/stackless.html|Stackless and coroutines]] * [[http://codespeak.net/pypy/dist/pypy/doc/js/|compile rpython to javascript]] |
Line 28: | Line 31: |
= 讨论 = |
PyPy
简介
PyPy 是一个虚拟机项目,主要分为两部分:一个 python 的实现 和 一个编译器。
pypy 这名字说的就是这第一部分:用python实现的python。但其实这么说并不准确,准确得说其实是用 rpython 实现的 python ,rpython 是 python 的一个子集,不过不要搞混了,虽然 rpython 不是完整的 python ,但用 rpython 写的这个 python 实现却是可以解释完整的 python 语言(目前针对的目标是python2.4)。
那为什么要用 rpython 来写这个 python 实现呢,这其实就涉及到了 pypy 的第二部分:编译器。
这是一个编译 rpython 的编译器,或者说这个编译器有一个 rpython 的前端(实际上还有人写了一个 prolog 的前端),它的后端却是不少,换句话说就是这个编译器支持许多的目标语言,比较重要的有:c, cli, javascript ...
而当我们把这两部分合起来看的时候,就能够发现 pypy 最重大的意义所在,当我们用这个编译器来编译这个用 rpython 写的 python 实现,我们能够得到什么呢?一个 c 写的 python 实现,一个用 .net 写的 python 实现 ...
并且在虚拟机的转换过程中,还可以选择性的加入许多虚拟机的“方面”,比如 线程支持,使用何种自动内存管理算法(GC),stackless、coutine 支持,还有众多的语言特性。
体验
http://play1.codespeak.net/ 在浏览器中试验 PyPy 虚拟机,此 ajax 程序本身就是由 PyPy 编译而成!
下载预编译好的 pypy 虚拟机,可以直接用来试验。
Trying out PyPy HuangYi 对 PyPy 编译器的简单实验惊叹于其智能的优化!
资源
- ... 等等大量精彩文档!