python各实现版本

Python各实现版本: CPython/Jython/Pypy/IronPython

CPython:

是用C语言实现的Python解释器。作为官方实现,它是最广泛使用的Python解释器。

Jython:

Jython(原JPython),是一个用Java语言写的Python解释器。
除了CPython以外,还有用Java实现的Jython,使Python方便地和Java程序集成。
Jython程序可以和Java无缝集成。除了一些标准模块,Jython使用Java的模块。
Jython几乎拥有标准的Python中不依赖于C语言的全部模块。
比如,Jython的用户界面将使用Swing,AWT或者SWT。
Jython可以被动态或静态地编译成Java字节码。
Jython还包括jythonc,一个将Python代码转换成Java代码的编译器。
这意味着Python程序员能够将自己用Python代码写的类库用在Java程序里。

IronPython:

用.NET实现的IronPython,使Python方便地和.NET程序集成。

IronPython是一种在.NET和Mono上实现的Python语言,由Jim Hugunin(同时也是Jython创造者)所创造。
1.0版于2006年9月5日发布。
随后,在2007年,开发者决定改写构架,使用动态类型系统以让更多脚本语言能很容易地移植到.NET Framework上。
2008年,随着微软发布.NET Framework 3.0/3.5、Silverlight之后,IronPython也发布了2.0版,
目前最新版本是2.7,于2011年3月发布,支持.NET Framework 4.0。

PyPy:

另外还有一些实验性的Python解释器比如PyPy。
PyPy是用Python实现的Python解释器。
PyPy是Python开发者为了更好的Hack Python创建的项目。
此外,PyPy比CPython更灵活,易于使用和试验,以制定具体的功能在不同情况的实现方法,可以很容易实施。
该项目的目标是,让PyPy比C实现的Python更为容易的适应各个项目和方便裁剪。
PyPy是Armin Rigo开发的,Python语言的动态编译器,是Psyco的后继项目。
PyPy的目的是,做到Psyco没有做到的动态编译。

PyPy开始只是研究性质的项目。但是开发非常成熟,在2007年中旬发布了1.0 Release版本后,大家关注的焦点是,能否在2008年出现可供生产环境使用的版本。

最新的PyPy版本是2.2.1,兼容Python 2.7.2。可以运行在Linux的32位和64位、MacOSX和Windows的32位平台中,但是基于arm平台的正在开发中。它支持Python语言的所有核心部分以及大多数的Python语言标准库函数模块,并且通过了Python语言的test suite。与CPython的区别可以去看它的兼容性页面.

PyPy还提供了JIT编译器和沙盒功能,因此运行速度比CPython要快,以及可以安全的运行一些不被信任的代码。PyPy还有一个单独的支持微线程的版本。

另外,PyPy也有每夜构建版本供开发者测试。

PyPy是作为Specific Targeted Research Projects(特定领域研究项目)从2004年12月到2007年3月,开始接受欧盟的援助。

PyPy的第一部分:用Python实现的Python

其实这么说并不准确,准确得说应该是用rPython实现的Python,rPython是Python的一个子集,虽然rPython不是完整的Python,但用rPython写的这个Python实现却是可以解释完整的Python语言。

PyPy的第二部分:编译器

这是一个编译rPython的编译器,或者说这个编译器有一个rPython的前端,目前也只有这么一个前端,不过它的后端却是不少,也就是说这个编译器支持许多的目标语言,比较重要的有:C,CIL,Javascript …