6

大概 Javascript 被编译为某种字节码以在 V8 引擎上运行?Python 是否是一种足够相似的语言,我们可以想象 Python 被编译成相同的字节码并在 V8 上运行?

有什么项目试图做到这一点?

4

7 回答 7

5

据我所知,没有专门针对 V8 虚拟机的项目。然而,Pypy和以前的 Unladen Swallow(现在合并到主 CPython 树的 py3k-jit 分支中)都试图将 Python 即时编译为本机代码,类似于 V8 对 Javascript 所做的。

正如@something 所说,睡衣允许您编写 Python 代码并将其翻译成 Javascript,就像 GWT 对 Java 所做的那样。任何因此翻译的代码在 V8 下运行与任何其他 Javascript 代码具有相同的好处。

于 2011-03-07T00:28:39.693 回答
3

已经有三个项目提供 Python 到 Javascript 编译器。生成的 Javascript 然后可以在包括 V8 在内的任何引擎上运行。寻找 Pyjamas、Skulpt 和 Py2JS。

这与将 Python 编译为 V8 字节码不同,但最终结果大致相同。

于 2011-03-07T00:37:27.077 回答
3

V8 实际上没有通用字节码。有一个正则表达式字节码,但通常不编译支持。有一个反序列化字节码和一个重定位信息字节码,但两者都是实现细节,你不能将它们用于任何事情。

所以你正在寻找的是可以编译成 JS 源代码的东西。

于 2011-04-10T09:57:34.990 回答
0

有关在浏览器中运行 python 的方法,请参阅 python wiki 页面WebBrowserProgramming

于 2011-03-06T23:30:00.497 回答
0

您是否正在寻找“睡衣”之类的东西? http://pyjs.org/

于 2011-03-07T00:20:56.577 回答
0

看看http://repl.it/ - 这是一个编译为 JavaScript 的非常完整的 Python 解释器的示例。这要归功于Emscripten - 一个将 LLVM 字节码编译为 Javascript 的编译器。

于 2013-07-14T21:12:31.870 回答
-5

Python 已经编译成字节码并被执行。这就是 CPython 中的 .pyc 文件。Jython 同样(动态)编译为 Java 字节码,IronPython for .NET 也是如此

于 2011-03-06T23:28:49.790 回答