Domanda

Esiste un compilatore di codice macchina nativo per JavaScript? Non sto parlando di una VM. Se non esiste, si può fare?
Mi chiedo se può essere compilato in binario a causa della natura dinamica del linguaggio.

È stato utile?

Soluzione

Per quanto ne so, non ci sono compilatori statici per JavaScript. È certamente teoricamente possibile; Tuttavia, una raccolta statica di JavaScript avrebbe bisogno di un runtime molto pesante per supportare tutte le sue caratteristiche (come la digitazione dinamica e la valutazione). A parte un piccolo, quando presentato con la necessità di compilare staticamente Python (un altro linguaggio dinamico), il Pypy Gli sviluppatori hanno finito per creare un linguaggio che era un sottoinsieme molto limitato di Python (chiamato rpython), privo di alcune delle caratteristiche più dinamiche di Python, che era in grado di essere compilato staticamente.

Se lo chiedi allo scopo di creare un eseguibile autonomo dal codice JavaScript, sono sicuro che ci debbano essere involucri che essenzialmente creerebbero un eseguibile contenente il tuo script e una VM JavaScript incorporata (purtroppo, non conosco alcun ).

Altri suggerimenti

È decisamente fattibile, anche se l'unico modo in cui so come farlo al momento è un processo a due fasi ...

  1. Compilare il JavaScript su Java usando Mozilla Rhino JSC.
  2. Compilare il file di classe Java risultante su eseguibile usando qualcosa di simile GCJ di GNU.

Perché vorresti, però? Che vantaggio ti aspetti di trovare?

Il motore Google V8 compila JavaScript nel codice della macchina nativa. Questa funzione viene utilizzata in Accendi Compilatore per cui ho scritto per i progetti Node.js e Io.js.

Si prega di notare che tutte queste soluzioni lo sono DOMMeno, quindi nessuna libreria come angular.js o jquery, solo underscore.js/lodash

Seguendo fino a FalainaRisposta,Pypy ha una dist per JavaScript

Anche, Applerator Titanium ha un js > JavaBit > android

Infine, node.js poter usare nexeSpiegato in questo altro Rispondere

È teoricamente possibile, ma ci sarà un sacco di bagaglio di supporto in runtime coinvolto (e persino un compilatore o un interprete JavaScript completo per supportare eval).

Stai cercando un vero compilatore di codice nativo o stai cercando qualcosa che possa raggruppare il codice JavaScript insieme a un runtime in un singolo binario eseguibile?

Sono sicuro che Microsoft ha un compilatore JScript scaricabile ("Microsoft's JavaScript")

Se si dispone di Windows: se si scrive un file di testo JavaScript, è possibile compilarlo: Apertura del prompt dei comandi usando il CD per accedere alla directory dei file di testo (se hai Windows) Tipo: C: Windows Microsoft.net Framework v2.0.50727 jsc.exe textfile.js

Altrimenti: scarica un compilatore JScript digitare la directory del compilatore JScript e quindi il nome del file di testo JavaScript

Puoi aggiungere variabili di ambiente se non si desidera digitare l'intero nome della directory al compilatore.

Questo ragazzo lo spiega meglio:http://www.phpied.com/make-your-javascript-a-windows-exe/

Personalmente penso che sia davvero bello. Vorrei solo che ci fosse più documentazione per questo.

Sono abbastanza sicuro che sia quello che stai cercando, ma sono un po 'nuovo.

Tracemonkey In FF3.5, fai questo in alcune parti del codice JavaScript. Potresti essere in grado di ottenere alcune indicazioni da lì!

Il compilatore AOT di Adobe Air per iOS compila staticamente un superset di JavaScript chiamato ActionScript 3.0 Down su ABC Bytecode, quindi codice macchina tramite LLVM. Se dovessi scrivere il tuo codice AS3 senza classi e senza annotazioni di tipo, sarebbe essenzialmente JavaScript, e il compilatore lo compilerebbe felicemente al codice macchina. Purtroppo questo non è un software open source e non hai accesso a nessun DOM (a cui molte persone pensano quando pensano a JavaScript) perché è in esecuzione all'interno di un'istanza di flash Player.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top