texto para ligero hacer crear como codigo bootstrap javascript compilation native native-code

javascript - ligero - editor de texto para bootstrap



¿Hay un compilador de código máquina nativo para JavaScript? (8)

¿Hay un compilador de código máquina nativo para JavaScript? No estoy hablando de una máquina virtual. Si no existe, ¿se puede hacer?
Me pregunto si se puede compilar en binario debido a la naturaleza dinámica del lenguaje.


Definitivamente es factible, aunque la única forma en que sé cómo hacerlo en este momento es un proceso de dos pasos ...

  1. Compile el javascript para Java utilizando Mozilla Rhino JSC .
  2. Compile el archivo de clase java resultante en un ejecutable utilizando algo como GCJ de GNU .

¿Por qué querrías, sin embargo? ¿Qué ventaja esperas encontrar?


El compilador AOT de Adobe AIR para iOS compila de forma estática un superconjunto de JavaScript llamado Actionscript 3.0 hasta el código de bytes ABC, luego el código de máquina a través de LLVM. Si tuviera que escribir su código AS3 sin clases y sin anotaciones de tipo, esencialmente sería JavaScript, y luego el compilador lo compilaría en código de máquina. Lamentablemente, este no es un software de código abierto, y usted no tiene acceso a ningún DOM (que mucha gente piensa cuando piensa en JavaScript) porque se ejecuta esencialmente en una instancia de Flash Player.


El motor de Google V8 compila JavaScript en un código de máquina nativo. Esta característica se usa en el compilador EncloseJS que escribí para los proyectos node.js y io.js.


En teoría, es posible, pero habrá una gran cantidad de equipaje de soporte en tiempo de ejecución involucrado (e incluso un compilador o intérprete de Javascript completo para respaldar eval ).

¿Está buscando un compilador real de código nativo, o está buscando algo que pueda incluir código Javascript junto con un tiempo de ejecución en un solo binario ejecutable?


Estoy seguro de que Microsoft tiene un compilador Jscript ("Microsoft''s javascript") descargable

si tiene Windows: si escribe un archivo de texto javascript, puede compilarlo: al abrir el símbolo del sistema usando cd para acceder al directorio del archivo de texto (si tiene ventanas) escriba: C: / WINDOWS / Microsoft.NET / Framework / v2.0.50727 / jsc.exe textfile.js

de lo contrario: descargue un compilador jscript escriba el directorio del compilador jscript y luego el nombre del archivo de texto javascript

puede agregar variables de entorno si no desea escribir todo el nombre del directorio al compilador.

este tipo lo explica mejor: http://www.phpied.com/make-your-javascript-a-windows-exe/

Personalmente creo que esto es realmente genial. Solo desearía que hubiera más documentación para ello.

Estoy bastante seguro de que eso es lo que estás buscando, pero soy un poco nuevo.


Que yo sepa, no hay compiladores estáticos para JavaScript. Ciertamente es teóricamente posible; sin embargo, una compilación estática de JavaScript necesitaría un tiempo de ejecución muy pesado para admitir todas sus características (como la tipificación dinámica y la evaluación). Aparte de esto, cuando se les presentó la necesidad de compilar de forma estática Python (otro lenguaje dinámico), los desarrolladores de PyPy terminaron creando un lenguaje que era un subconjunto muy restringido de Python (llamado RPython), sin algunas de las características más dinámicas de Python que era capaz de ser compilado estáticamente.

Si está pidiendo esto con el fin de crear un ejecutable independiente a partir de código JavaScript, estoy seguro de que debe haber envoltorios que esencialmente crearían un ejecutable que contenga su script y una máquina virtual JavaScript incrustada (lamentablemente, no conozco a nadie) ).


Tenga en cuenta que todas estas soluciones son DOM menos, por lo que no hay bibliotecas como angular.js o jquery , solo underscore.js / lodash

Siguiendo la respuesta de Falaina , PyPy tiene un dist para JavaScript

Además, Appcelerator Titanium tiene un js > JavaBit > android

Finalmente, node.js puede usar nexe Explicado en esta otra answer


TraceMonkey en FF3.5 hace esto en algunas partes del código javascript. ¡Podrás obtener algunas indicaciones desde allí!