Emscripten | |
---|---|
Típusú | Transzpilátor |
Fejlesztő | Alon Zakai |
Beírva | C [2] , C++ és JavaScript |
Operációs rendszer | platformközi |
Hardver platform | platformközi |
legújabb verzió | 3.1.15 [1] ( 2022. július 1. ) |
Engedély | MIT-licenc és az Illinoisi Egyetem nyílt licence [d] |
Weboldal | emscripten.org |
Az Emscripten egy LLVM bytecode - to - JavaScript fordító , amely webböngészőben futtatható [ 3] . Az LLVM bájtkód C vagy C++ forráskódból szerezhető be .
A projekt alapítója Alon Zakai. Az MIT licence alapján terjesztve .
A JavaScript-fejlesztők gyakran szembesülnek nehéz feladatokkal, amelyek gyakran már meg vannak oldva, de nem a szükséges JavaScript-ben, hanem egy teljesen más programozási nyelven . Több tíz vagy akár több százezer sornyi kód átírása C / C ++-ról JavaScriptre amatőr öröm. Egyáltalán nem növeli az izgalmat.
A portolás további problémája, hogy a kódemuláció köztudottan kevésbé hatékony, mint a natív kódvégrehajtás . És amikor valaki más processzorának működésének lépésről lépésre történő modellezésének sebessége nem elegendő, hozzá kell adni a dinamikus újrafordítást - az emulált kód szakaszainak automatikus fordítását JavaScript-be. Meglehetősen nehéz, de miután egy intelligens JIT-fordító újrafordította, a kód gyorsabbá válik.
Az Emscripten projekt fejlesztési célja egy olyan eszköz létrehozása, amely lehetővé teszi a kód futtatását az interneten , függetlenül attól, hogy a kód milyen programozási nyelven íródott. Az Emscripten lehetővé teszi, hogy az LLVM bájtkódot JavaScript-kódba fordítsa, amely végrehajtható egy webböngészőben, csak egy normál JavaScript-motor használatával , további bővítmények nélkül. Az LLVM bájtkód előállítható C/C++ forrásokból az llvm-gcc és clang fordítókkal , valamint egy másik programozási nyelv kódjából, amelyhez létezik LLVM frontend. Az Emscripten támogatja az SDL kimenet lefordítását vászonon keresztül , és támogatja az OpenGL -t is a WebGL -en keresztül .
A böngészőben való futtatáshoz sikeresen újrafordított projektek közé tartozik a NetBSD kernel , a CPython , a Ruby és a Lua interpreterek , a Poppler PDF - nézegető , a FreeType TrueType betűtípus renderelő rendszer , a H.264 videó dekóder , a Doom [4] és a Doom 3 [5] , az Unreal Engine játékmotor [6] [7] és mások. [nyolc]