Pergunta

Existe um compilador de código de máquina nativo para JavaScript?Não estou falando de uma VM.Se não existir, pode ser feito?
Gostaria de saber se ele pode ser compilado em binário devido à natureza dinâmica da linguagem.

Foi útil?

Solução

Até onde eu sei, não há compiladores estáticos para JavaScript. Certamente é teoricamente possível; No entanto, uma compilação estática do JavaScript precisaria de um tempo de execução muito pesado para suportar todos os seus recursos (como digitação dinâmica e avaliação). Como um pequeno de lado, quando apresentado com a necessidade de compilar estaticamente python (outra linguagem dinâmica), o Pypy Os desenvolvedores acabaram criando um idioma que era um subconjunto muito restrito de Python (chamado Rpython), vazio de alguns dos recursos mais dinâmicos do Python, capazes de ser estaticamente compilados.

Se você está pedindo isso com o objetivo de criar um executável independente do código JavaScript, tenho certeza de que deve haver invólucros que essencialmente criaria um executável contendo seu script e um javascript incorporado VM (infelizmente, não sei ).

Outras dicas

Definitivamente é factível, embora a única maneira de saber como fazê -lo no momento é um processo de duas etapas ...

  1. Compilar o JavaScript para Java usando Mozilla Rhino JSC.
  2. Compilar o arquivo de classe Java resultante para executável usando algo como GCJ da GNU.

Por que você gostaria, no entanto? Que vantagem você espera encontrar?

O mecanismo do Google V8 compila JavaScript em código de máquina nativo. Este recurso é usado no EncloseJS Compilador que escrevi para projetos para Node.js e io.js.

Observe que todas essas soluções são DOMMenos, então nenhuma biblioteca como angular.js ou jquery, só underscore.js/lodash

Seguindo até FalainaResposta,Pypy tem um dist para JavaScript

Também, Appcelerator Titanium tem um js > JavaBit > android

Finalmente, node.js pode usar NexeExplicado neste outro responda

É teoricamente possível, mas haverá muita bagagem de suporte de tempo de execução envolvida (e até um compilador ou intérprete JavaScript completo para apoiar eval).

Você está procurando um compilador de código nativo real ou está procurando algo que possa agrupar o código JavaScript junto com um tempo de execução em um único binário executável?

Tenho certeza de que a Microsoft possui um compilador Jscript ("javascript da Microsoft") para download

se você tiver janelas:Se você escrever um arquivo de texto javascript, poderá compilá-lo:Abrindo o prompt de comando usando o CD para acessar o diretório de arquivos de texto (se você tiver Windows) tipo:C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727\jsc.exe textfile.js

de outra forma:Faça o download de um compilador JScript tipo o diretório do compilador JScript e depois o nome do arquivo de texto JavaScript

você pode adicionar variáveis ​​de ambiente se não quiser digitar o nome completo do diretório no compilador.

esse cara explica melhor:http://www.phpied.com/make-your-javascript-a-windows-exe/

Eu pessoalmente acho isso muito legal.Eu só queria que houvesse mais documentação para isso.

Tenho certeza que é isso que você está procurando, mas sou um pouco novo.

Tracemonkey No FF3.5, faça isso em algumas partes do código JavaScript. Você pode conseguir algumas direções a partir daí!

O compilador AOT da Adobe Air para iOS compila estaticamente um superconjunto de JavaScript chamado ActionScript 3.0 até o ABC Bytecode e o código da máquina através do LLVM. Se você escrevesse seu código AS3 sem classes e sem anotação de tipo, seria essencialmente JavaScript e, em seguida, o compilador o compilaria com o código da máquina. Infelizmente, este não é um software de código aberto e você não obtém acesso a nenhum DOM (que muitas pessoas pensam quando pensam em JavaScript) porque está sendo executado dentro essencialmente de uma instância do Flash Player.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top