Emscripten

Aktuální verze stránky ještě nebyla zkontrolována zkušenými přispěvateli a může se výrazně lišit od verze recenzované 22. března 2019; kontroly vyžadují 12 úprav .
Emscripten
Typ Transpiler
Vývojář Alon Zakai
Zapsáno v C [2] , C++ a JavaScript
Operační systém multiplatformní
Hardwarová platforma multiplatformní
Nejnovější verze 3.1.15 [1] ( 1. července 2022 )
Licence Licence MIT a otevřená licence University of Illinois [d]
webová stránka emscripten.org


Emscripten  je kompilátor LLVM bytecode - to -JavaScript , který lze spustit ve webovém prohlížeči [3] . Bytekód LLVM lze získat ze zdrojového kódu C nebo C++ .

Zakladatelem projektu je Alon Zakai. Distribuováno pod licencí MIT .

Vývojáři JavaScriptu poměrně často čelí obtížným úkolům, které jsou často již vyřešeny, ale ne v JavaScriptu, který potřebují, ale ve zcela jiném programovacím jazyce . Přepisování desítek nebo dokonce stovek tisíc řádků kódu z C/C++ do JavaScriptu je amatérským potěšením. Na vzrušení to vůbec nepřidává.

Dalším problémem s portováním je, že emulace kódu je notoricky méně účinná než spouštění nativního kódu . A když rychlost krokového modelování chodu cizího procesoru nestačí, musí přidat dynamickou rekompilaci – automatický překlad částí emulovaného kódu do JavaScriptu. Je to docela obtížné, ale po předělání chytrým JIT kompilátorem se kód zrychlí.

Cílem vývoje projektu Emscripten je vytvořit nástroj, který by umožnil spouštění kódu na internetu bez ohledu na programovací jazyk, ve kterém je tento kód napsán. Emscripten vám umožňuje zkompilovat bajtkód LLVM do kódu JavaScript, který lze spustit ve webovém prohlížeči pouze pomocí běžného enginu JavaScript , bez potřeby dalších pluginů. Bytekód LLVM lze generovat ze zdrojů C/C++ pomocí kompilátorů llvm-gcc a clang a také z kódu v jiném programovacím jazyce, pro který existuje frontend LLVM. Emscripten podporuje překlad výstupu SDL přes plátno a také poskytuje podporu pro OpenGL přes WebGL .

Projekty, které byly úspěšně překompilovány pro spuštění v prohlížeči, zahrnují jádro NetBSD , interprety CPython , Ruby a Lua , prohlížeč PDF Poppler , systém vykreslování písem FreeType TrueType , video dekodér H.264 , Doom [4] a Doom 3 [5] , herní engine Unreal Engine [6] [7] a další. [osm]

Poznámky

  1. 3.1.15 . Získáno 1. července 2022. Archivováno z originálu dne 1. července 2022.
  2. The emscripten Open Source Project na Open Hub: Jazyková stránka - 2006.
  3. Walton, Zach Snadno přenese C++ do HTML5/JavaScriptu pomocí Emscripten (odkaz není k dispozici) . webpronews . iEntry Network (4. dubna 2012). Získáno 30. července 2018. Archivováno z originálu 30. července 2013. 
  4. JS-DOS/GAMES/DOOM . Získáno 30. července 2018. Archivováno z originálu 19. července 2018.
  5. D3Wasm: port enginu id Tech 4 / Doom 3 na WebAssembly . Získáno 1. března 2019. Archivováno z originálu dne 4. března 2019.
  6. Unreal Engine . Získáno 30. července 2018. Archivováno z originálu 11. dubna 2015.
  7. Mozilla a Epic Preview Unreal Engine 4 běžící ve Firefoxu . Získáno 30. července 2018. Archivováno z originálu 6. října 2014.
  8. Kompilátor Emscripten dosáhl možnosti vlastní přestavby Archivní kopie ze 7. dubna 2014 na Wayback Machine // opennet.ru 13.11.2012