2011-03-06 27 views
6

¿Presumiblemente Javascript está compilado con algún tipo de código de bytes para ejecutarse en el motor V8? ¿Es Python un lenguaje lo suficientemente similar como para que imaginemos que Python se compila con el mismo código de bytes y se ejecuta en el V8?¿Se podría compilar Python para ejecutar en el motor V8?

¿Algún proyecto tratando de hacer esto?

+2

¿Se trata de una cuestión de optimización de python o se trata de compilar Python en un formulario que el intérprete de Javascript puede ejecutar directamente en los navegadores actuales? – Arafangion

Respuesta

3

V8 en realidad no tiene un bytecode de propósito general. Hay un código de byte regexp, pero generalmente no se compila el soporte. Hay un código de bytes de deserialización y un código de bytes de información de reubicación, pero ambos son detalles de implementación y no puede usarlos para nada.

Así que lo que está buscando es algo que se compila con el código fuente de JS.

-4

Python ya está compilado para bytecode y se ejecuta. Esto es lo que los archivos .pyc están en CPython. Jython también compila código de bytes Java (dinámicamente), y también lo hace IronPython para .NET

+2

Esto no tiene nada que ver con el motor de Javascript V8. –

+0

La pregunta es sobre la orientación de V8, específicamente, no sobre los códigos de bytes de Python en general. – payne

+0

Forma en que interpreté la pregunta, se trataba de compilar python a bytecode, de los cuales V8 se proporcionó como ejemplo. – Arafangion

0

Para formas de ejecutar python dentro de los navegadores, consulte la página wiki de python WebBrowserProgramming.

5

Por lo que yo sé, no hay proyectos que se dirijan específicamente a la máquina virtual V8. Sin embargo, Pypy y el antiguo Unladen Swallow (ahora fusionado en la rama py3k-jit del árbol principal de CPython), ambos intentan compilar Python en el momento justo, de forma similar a como lo hace V8 con Javascript.

Como @something dice, pyjamas le permite escribir el código de Python y traducirlo a Javascript, al igual que hace GWT con Java. Cualquier código traducido de esta manera tendría los mismos beneficios que correr bajo V8 como cualquier otro código JavaScript.

3

Ya hay tres proyectos que proporcionan un compilador de Python a Javascript. El Javascript resultante se puede ejecutar en cualquier motor, incluido el V8. Busque pijamas, Skulpt y Py2JS.

Esto no es lo mismo que compilar códigos de byte de Python a V8, pero el resultado final es muy similar.

0

Eche un vistazo a http://repl.it/ - es un ejemplo de un intérprete de Python bastante completo compilado en JavaScript. Esto se logró gracias a Emscripten - un compilador de código de bytes LLVM a Javascript.

Cuestiones relacionadas