PyPy
![]() | |
当前版本 | 1.6(2011年8月18日 | )
---|---|
源代码库 | |
编程语言 | Python |
操作系统 | 跨平台 |
类型 | Python解释器和编译器 |
许可协议 | MIT协议 |
网站 | http://www.pypy.org/ |
项目背景
PyPy是,Python开发者为了更好的Hack Python创建的项目。此外,PyPy比CPython是更加灵活,易于使用和试验,以制定具体的功能在不同情况的实现方法,可以很容易实施。 该项目的目标是,让PyPy比C实现的Python更为容易的适应各个项目和方便裁剪。[1]
项目现状
PyPy是Armin Rigo开发的,Python语言的动态编译器,是Psyco的后继项目。PyPy的目的是,做到Psyco没有做到的动态编译。
PyPy开始只是研究性质的项目。但是开发非常成熟,在2007年中旬发布了1.0 Release版本后,大家关注的焦点是,能否在2008年出现可供生产环境使用的版本。
在2011年 4月30日,PyPy 释出 1.5 版本,并与 python 2.7.1 兼容。
最新的PyPy版本是1.8。可以运行在Linux的x86和x86_64平台和win32平台中,但是基于arm平台的正在开发中。它支持Python语言的所有核心部分以及大多数的Python语言标准库函数模块,并且通过了Python语言的test suite。与CPython的区别可以去看它的兼容性页面.
PyPy还提供了JIT编译器和沙盒功能,因此运行速度比CPython要快,以及可以安全的运行一些不被信任的代码。PyPy还有一个单独的支持微线程的版本。
另外,PyPy 也有 每夜构建 版本供开发者测试。
PyPy是作为Specific Targeted Research Projects(特定领域研究项目)从2004年12月到2007年3月[2],开始接受欧盟的援助。
PyPy的实现与原理
其实这么说并不准确,准确得说应该是用rPython实现的Python,rPython是Python的一个子集,虽然rPython不是完整的Python,但用rPython写的这个Python实现却是可以解释完整的Python语言。
PyPy的第二部分:编译器
这是一个编译rPython的编译器,或者说这个编译器有一个rPython的前端,目前也只有这么一个前端,不过它的后端却是不少,也就是说这个编译器支持许多的目标语言,比较重要的有:C,CIL,Javascript ...
参考文献
- ^ Samuele Pedroni. PyPy release announcement. 2007 [2008-03-09]. 已忽略未知参数
|month=
(建议使用|date=
) (帮助) - ^ PyPy EU project page. [2008-03-09].
外部链接
- PyPy官方網站
- Python in Python: The PyPy System - PyPy設計師在史丹佛大學講課(視頻點播)