Python可以编译为在V8引擎上运行吗?

时间:2011-03-06 23:26:33

标签: python v8

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

任何试图这样做的项目?

7 个答案:

答案 0 :(得分:5)

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

正如@something所说,pyjamas允许你编写Python代码并将其转换为Javascript,就像GWT与Java一样。因此,翻译的任何代码与在任何其他Javascript代码下在V8下运行具有相同的好处。

答案 1 :(得分:3)

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

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

答案 2 :(得分:3)

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

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

答案 3 :(得分:0)

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

答案 4 :(得分:0)

你是否正在寻找像“睡衣”这样的东西? http://pyjs.org/

答案 5 :(得分:0)

看一下http://repl.it/ - 这是一个编译成JavaScript的非常完整的Python解释器的例子。这是通过Emscripten - 一个LLVM字节码到Javascript的编译器来实现的。

答案 6 :(得分:-4)

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