2011-03-06 14 views
6

Presumibilmente Javascript è compilato per una sorta di codice byte da eseguire sul motore V8? Python è un linguaggio abbastanza simile che possiamo immaginare che Python sia compilato nello stesso byte-code ed eseguito sul V8?Potrebbe essere compilato Python per l'esecuzione sul motore V8?

Qualche progetto che cerca di farlo?

+2

Questa è una domanda sull'ottimizzazione di python, o si tratta di una domanda sulla compilazione di Python su un modulo che può essere eseguito direttamente dall'interprete Javascript sui browser correnti? – Arafangion

risposta

3

V8 non ha un codice bytecode generico. Esiste un codice byte di regexp, ma in genere il supporto non viene compilato. Esiste un codice byte di deserializzazione e un codice byte di informazioni di rilocazione, ma entrambi sono dettagli di implementazione e non è possibile utilizzarli per nulla.

Quindi quello che stai cercando è qualcosa che compila il codice sorgente JS.

-4

Python è già compilato in bytecode ed eseguito. Questo è ciò che i file .pyc sono in CPython. Analogamente, Jython si compila in bytecode Java (in modo dinamico), e così anche in IronPython per .NET

+2

Questo non ha nulla a che fare con il motore Javascript V8. –

+0

La domanda riguarda il targeting V8, in particolare, non i codici byte Python in generale. – payne

+0

Come ho interpretato la domanda, si trattava di compilare python in bytecode, di cui V8 è stato dato come esempio. – Arafangion

0

Per i modi di eseguire python all'interno dei browser, vedere la pagina wiki python WebBrowserProgramming.

5

Per quanto ne so, non ci sono progetti rivolti in modo specifico alla macchina virtuale V8. Tuttavia, Pypy e Unladen Swallow (ora uniti nel ramo py3k-jit dell'albero principale CPython), entrambi tentano di compilare Python in codice nativo, in modo simile a quanto fa V8 con Javascript.

Come dice @something, pyjamas consente di scrivere il codice Python e di tradurlo in Javascript, proprio come fa GWT con Java. Qualsiasi codice tradotto avrebbe quindi gli stessi vantaggi di funzionare con V8 come qualsiasi altro codice Javascript.

3

Esistono già tre progetti che forniscono un compilatore Python to Javascript. Il Javascript risultante può quindi essere eseguito su qualsiasi motore, incluso V8. Cerca Pigiama, Skulpt e Py2JS.

Questo non equivale alla compilazione di bytecode da Python a V8, ma il risultato finale è più o meno lo stesso.

0

Dai un'occhiata a http://repl.it/ - è un esempio di un interprete Python praticamente completo compilato in JavaScript. Questo è stato ottenuto grazie a Emscripten - un compilatore di bytecode LLVM su Javascript.

Problemi correlati