0

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

Python Byte-Code 和 Python Code 本身是否独立于解释器,

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

如果是这样,是否有一个基准,或者我可以比较许多解释器的性能比较的地方?

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

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

4

2 回答 2

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允许您与 Java 代码交互。我敢肯定 IronPython 也是如此。

于 2018-10-10T18:39:39.563 回答
0

如果是这样,是否有一个基准,或者我可以比较许多解释器的性能比较的地方?

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

于 2018-10-24T04:07:40.010 回答