Pergunta

Sei que o código V8 do Google compila o código JavaScript em máquina nativa (binária, se eu entender corretamente).
Existe uma maneira de pegar a saída e transformá -la em um exe?

Foi útil?

Solução

Eu não acho que você possa transformar diretamente um pedaço de JavaScript em um executável usando o V8, mas provavelmente pode fazer um aplicativo que agrupa o mecanismo V8 com o JavaScript e o executa como um independente.

Você pode encontrar todas as informações sobre V8 em sua página de projeto.

Observe também que o JavaScript não pode ser completamente compilado, pois é uma linguagem dinâmica. Com V8, é compilado por JIT (como .NET, por exemplo.) Ainda é possível transformá-lo em um executável independente (como .NET, por exemplo.)

Se você deseja desenvolver aplicativos independentes que façam uso do HTML para renderização, você pode dar uma olhada Air Adobe também.

Outras dicas

O JavaScript não pode ser compilado apenas uma vez. O idioma tem aval o que é amplamente utilizado. (Para JSON, por exemplo), você precisa carregar o JIT e todo o tempo de execução.

O JIT aqui é apenas uma otimização, não a maneira de se livrar do compilador/intérprete.

Node.js incorporar v8. Este pode ser um bom exemplo para aprender.

Houve algumas tentativas em transformar o JS em código nativo, não é algo que possa ser usado em produção por qualquer meio, mais um interesse acadêmico. O intérprete de rinoceronte para Java tem a opção de transformar JS em (Java) Bytecode, para que uma abordagem seja converter em bytecode e depois do bytecode para o nativo com GCJ. Há alguma discussão sobre Rhino e GCJ, mas não sei se alguém já tentou exatamente isso. https://groups.google.com/forum/#!msg/netscape.public.mozilla.jseng/c3tqylz19fw/8v4heumtixuj

Outra abordagem é usar o Python, especificamente Py-Py, que é escrito em um subconjunto não padrão de Python chamado Rpython. Rpython não se destina ao consumo humano, mas tem o benefício de ser algo que pode ser compilado ao nativo. Um experimento interessante (embora maluco) foi compilar JavaScript ao Python e, em alguns casos, Python é válido como rpython e pode ser compilado até o nativo com o compilador Rpython.

http://mozakai.blogspot.com/2010/07/experiments-with-static-javascript-as.html

Se um arquivo .exe for realmente importante, eu agruparia o V8 com seu aplicativo, pois, mesmo que você possa compilar o JS com o nativo, você ainda precisará de um intérprete completo se usar algum avaliar () ou similar. Não seria difícil escrever uma ferramenta para agrupar tudo em um arquivo .exe, desde que seus usuários não se importem com um arquivo exe de 8 MB ou 8MB V8.DLL.

Como último pensamento, o Big G começou a permitir aplicativos "nativos" baseados no Chrome (Google: "Chrome Packaged Apps"). Eles têm acesso ao sistema de baixo nível e podem usar o renderizador do Webkit, permitindo que você crie sua GUI no CSS e HTML e eles têm suas próprias janelas e ícones, para que não seja óbvio que eles estão correndo dentro do Chrome. Provavelmente, isso ainda é prematuro, mas é algo para ficar de olho no campo Aplicações de desktop.

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