Python字节码,解释器是否独立?

时间:2018-10-10 18:25:34

标签: python pypy pythoninterpreter

这是一个显而易见的问题,我无法找到具体答案。

Python字节码和Python代码本身的解释器是否独立,

意思是,如果我使用CPython,PyPy,Jython,IronPython,Skulpt等,Interpreter并尝试运行,那么python或字节码中的同一段代码,它将正确运行吗? (前提是它们实现相同的语言版本,并使用严格用Python编写的模块或标准模块)

如果是这样,是否有一个基准,或者可以用来比较许多口译员的性能比较的地方?

我使用CPython已经有一段时间了,现在我想探索新的解释器。

还有一个附带的问题,其他python实现有什么用? 骷髅我明白了,浏览器,但是其余的呢?是否有需要不同解释器的特定行业或应用程序(哪个)?

2 个答案:

答案 0 :(得分:0)

来自https://docs.python.org/3/library/dis.html#module-dis

  

字节码是CPython解释器的实现细节。没有   保证不会添加,删除或删除字节码   在Python版本之间进行了更改。不应使用此模块   被认为可以跨Python VM或Python版本使用。

另一方面,Jython“由编译器将Python源代码编译为可直接在JVM上运行的Java字节码”,而IronPython则编译为CIL以便在.NET VM上运行。

目的是更好地集成到您的编程环境中。 CPython允许您编写C扩展,但这在其他实现中不一定是正确的。 Jython allows you to interact with Java code。我敢肯定IronPython也是如此。

答案 1 :(得分:0)

  

如果是,是否有基准,或者我可以比较的地方   许多口译员的表现比较?

speed.pypy.org将pypy与cpython进行比较