python不同的解释器

python不同的解释器

下面列出了不同语言实现的解释器:

CPython是我们默认的Python的解释器:

除此之外还有使用

java实现的Jython解释器

c#实现的IronPython

ruby实现的RubyPython

使用不同的解释器是可以让你使用不同语言提供的内置方法和类,例如,使用Jython就可以直接使用

>>> from java.util import HashSet
>>> s = HashSet(5)
>>> s.add("Foo")
>>> s.add("Bar")
除此之外还有一个Brython,这个很好玩的,用python代替javascript在web客户端编程。
 

上图中还少一种

PyPy,它是用RPython写的解释器(RPython是python的一个子集)不过现在开始从RPython转换为c实现了,它专注的是速度,另外它还有JIT(Just in time)的特性,也就是在运行时编译成机器码的特性。pypy官网说它能够比cpython(python默认的解释器)快0.16 到 6.3倍。

不过很多人对它也诟病不少,说它没有支持对c的扩展(Cpython当然支持很多因为本身就是用c写的),没有引用计数策略(只有垃圾回收,而cpython都有),非常耗内存(这是拿空间换时间),并且它的速度快也是分情况(哪些情况快,哪些情况慢,目前没有这方面的的数据)。

关于为什么PyPy没有被大量采用的讨论,可以看:

http://stackoverflow.com/questions/18946662/why-shouldnt-i-use-pypy-over-cpython-if-pypy-is-6-3-times-faster

 

版权所有,禁止转载. 如需转载,请先征得博主的同意,并且表明文章出处,否则按侵权处理.

    分享到:

留言

你的邮箱是保密的 必填的信息用*表示