Emscripten

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 22 de marzo de 2019; las comprobaciones requieren 12 ediciones .
Emscripten
Tipo de Transpilador
Desarrollador alon zakai
Escrito en C [2] , C++ y JavaScript
Sistema operativo multiplataforma
plataforma de hardware multiplataforma
ultima versión 3.1.15 [1] ( 1 de julio de 2022 )
Licencia Licencia MIT y licencia abierta de la Universidad de Illinois [d]
Sitio web emscripten.org


Emscripten  es un compilador de código de bytes LLVM a JavaScript que se puede ejecutar en un navegador web [3] . El código de bytes LLVM se puede obtener del código fuente C o C++ .

El fundador del proyecto es Alon Zakai. Distribuido bajo la licencia MIT .

Los desarrolladores de JavaScript a menudo enfrentan tareas difíciles, que a menudo ya están resueltas, pero no en el JavaScript que necesitan, sino en un lenguaje de programación completamente diferente . Reescribir decenas o incluso cientos de miles de líneas de código de C/C++ a JavaScript es un placer para los aficionados. No aumenta la emoción en absoluto.

Un problema adicional con la migración es que la emulación de código es notoriamente menos eficiente que la ejecución de código nativo . Y cuando la velocidad del modelado paso a paso del funcionamiento del procesador de otra persona no es suficiente, tienen que agregar la recompilación dinámica: traducción automática de secciones del código emulado a JavaScript. Es bastante difícil, pero después de ser refactorizado por un compilador JIT inteligente, el código se vuelve más rápido.

El objetivo de desarrollo del proyecto Emscripten es crear una herramienta que permita ejecutar código en Internet , independientemente del lenguaje de programación en el que esté escrito este código. Emscripten le permite compilar el código de bytes LLVM en código JavaScript que se puede ejecutar dentro de un navegador web utilizando solo un motor JavaScript normal , sin necesidad de complementos adicionales. El código de bytes LLVM se puede generar a partir de fuentes C/C++ utilizando los compiladores llvm-gcc y clang , así como a partir de código en otro lenguaje de programación para el que existe una interfaz LLVM. Emscripten admite la traducción de la salida SDL a través del lienzo y también brinda soporte para OpenGL a través de WebGL .

Los proyectos que se han vuelto a compilar con éxito para ejecutarse en el navegador incluyen el kernel de NetBSD , los intérpretes de CPython , Ruby y Lua , el visor de PDF Poppler , el sistema de representación de fuentes FreeType TrueType , el decodificador de video H.264 , Doom [4] y Doom 3 [5] , el motor de juego Unreal Engine [6] [7] y otros. [ocho]

Notas

  1. 3.1.15 . Consultado el 1 de julio de 2022. Archivado desde el original el 1 de julio de 2022.
  2. El proyecto de código abierto emscripten en Open Hub: página de idiomas - 2006.
  3. Walton, Zach Migra fácilmente C++ a HTML5/JavaScript con Emscripten (enlace no disponible) . webpronoticias . Red iEntry (4 de abril de 2012). Consultado el 30 de julio de 2018. Archivado desde el original el 30 de julio de 2013. 
  4. JS-DOS/JUEGOS/DOOM . Consultado el 30 de julio de 2018. Archivado desde el original el 19 de julio de 2018.
  5. D3Wasm: una adaptación del motor id Tech 4 / Doom 3 a WebAssembly . Consultado el 1 de marzo de 2019. Archivado desde el original el 4 de marzo de 2019.
  6. Motor irreal . Consultado el 30 de julio de 2018. Archivado desde el original el 11 de abril de 2015.
  7. Mozilla y Epic Preview Unreal Engine 4 ejecutándose en Firefox . Consultado el 30 de julio de 2018. Archivado desde el original el 6 de octubre de 2014.
  8. El compilador Emscripten ha llegado a la posibilidad de reconstruir su propia copia de archivo del 7 de abril de 2014 en Wayback Machine // opennet.ru 13/11/2012