2011-03-06 103 views
6

據推測,Javascript被編譯爲某種字節碼以在V8引擎上運行? Python是一種相似的語言,我們可以將Python編譯爲相同的字節碼並在V8上運行?是否可以編譯Python以在V8引擎上運行?

任何試圖做到這一點的項目?

+2

這是一個關於優化蟒蛇的問題,或者這是一個關於編譯Python來可以通過JavaScript解釋當前的瀏覽器直接執行的某種形式的問題嗎? – Arafangion 2011-03-07 01:20:07

回答

3

V8實際上並沒有通用字節碼。有一個正則表達式字節碼,但通常不會編譯支持。有一個反序列化字節碼和一個重定位信息字節碼,但都是實現細節,不能用於任何事情。

所以,你在找什麼東西編譯爲JS代碼。

-4

的Python已經編譯成字節碼並執行。這就是CPython中的.pyc文件。 Jython同樣編譯爲Java字節碼(動態地),IronPython for .NET也是這樣。

+2

這與V8 Javascript引擎無關。 – 2011-03-07 00:32:45

+0

這個問題是關於針對V8的,具體而言,不是關於一般的Python字節碼。 – payne 2011-03-07 00:39:03

+0

我解釋了這個問題,它是關於將python編譯爲字節碼的,其中以V8爲例。 – Arafangion 2011-03-07 01:13:43

5

據我所知,沒有專門針對V8虛擬機的項目。然而,Pypy和以前的Unladen Swallow(現在合併到主CPython樹的py3k-jit分支中)都試圖將Python及時編譯到本機代碼中,類似於V8在Javascript中的操作。

由於@something說,pyjamas允許編寫Python代碼,並把它翻譯成JavaScript,就像GWT對Java。因此,任何翻譯的代碼都可以在V8下運行,與任何其他Javascript代碼一樣。

3

已經有三個向Javascript編譯器提供Python的項目。然後生成的Javascript可以運行在包括V8在內的任何引擎上。尋找睡衣,Skulpt和Py2JS。

這是不一樣的編譯Python來V8字節碼,但最終的結果是一樣的。

0

看一看http://repl.it/ - 這是編譯爲JavaScript一個非常完整的Python解釋器的一個例子。這得益於Emscripten--一個LLVM字節碼到Javascript的編譯器。

相關問題