Emscripten

Den aktuella versionen av sidan har ännu inte granskats av erfarna bidragsgivare och kan skilja sig väsentligt från versionen som granskades den 22 mars 2019; kontroller kräver 12 redigeringar .
Emscripten
Sorts Transpiler
Utvecklaren Alon Zakai
Skrivet i C [2] , C++ och JavaScript
Operativ system plattformsoberoende
Hårdvaruplattform plattformsoberoende
senaste versionen 3.1.15 [1] ( 1 juli 2022 )
Licens MIT-licens och University of Illinois öppen licens [d]
Hemsida emscripten.org


Emscripten  är en LLVM bytecode - to- JavaScript - kompilator som kan köras i en webbläsare [3] . LLVM-bytekod kan erhållas från C eller C ++ källkod .

Grundaren av projektet är Alon Zakai. Distribueras under MIT-licensen .

JavaScript-utvecklare står ofta inför svåra uppgifter, som ofta redan är lösta, men inte i den JavaScript de behöver, utan i ett helt annat programmeringsspråk . Att skriva om tiotals eller till och med hundratusentals rader kod från C/C++ till JavaScript är ett amatörnöje. Det ökar inte spänningen alls.

Ett ytterligare problem med portering är att kodemulering är notoriskt mindre effektiv än inbyggd kodexekvering . Och när hastigheten för steg-för-steg-modellering av driften av någon annans processor inte räcker, måste de lägga till dynamisk omkompilering - automatisk översättning av delar av den emulerade koden till JavaScript. Det är ganska svårt, men efter att ha omstrukturerats av en smart JIT-kompilator blir koden snabbare.

Utvecklingsmålet för Emscripten-projektet är att skapa ett verktyg som gör att kod kan exekveras på Internet , oavsett vilket programmeringsspråk som denna kod är skriven på. Emscripten låter dig kompilera LLVM-bytekod till JavaScript-kod som kan köras i en webbläsare med enbart en vanlig JavaScript-motor , utan behov av ytterligare plugins. LLVM-bytekod kan genereras från C/C++-källor med hjälp av llvm-gcc och clang-kompilatorerna , såväl som från kod i ett annat programmeringsspråk som det finns ett LLVM-gränssnitt för. Emscripten stöder översättning av SDL -utdata genom canvas och ger även stöd för OpenGL genom WebGL .

Projekt som framgångsrikt har kompilerats om för att köras i webbläsaren inkluderar NetBSD -kärnan , CPython- , Ruby- och Lua - tolkarna , Poppler PDF - visaren , FreeType TrueType- fontåtergivningssystemet , H.264 -videoavkodaren , Doom [4] och Doom 3 spel [5] , spelmotorn Unreal Engine [6] [7] och andra. [åtta]

Anteckningar

  1. 3.1.15 . Hämtad 1 juli 2022. Arkiverad från originalet 1 juli 2022.
  2. Emscripten Open Source Project på Open Hub: Languages-sidan - 2006.
  3. Walton, Zach Porterar enkelt C++ till HTML5/JavaScript med Emscripten (länk ej tillgänglig) . webpronews . iEntry Network (4 april 2012). Hämtad 30 juli 2018. Arkiverad från originalet 30 juli 2013. 
  4. JS-DOS/SPEL/DOOM . Hämtad 30 juli 2018. Arkiverad från originalet 19 juli 2018.
  5. D3Wasm: en port av id Tech 4 / Doom 3-motor till WebAssembly . Hämtad 1 mars 2019. Arkiverad från originalet 4 mars 2019.
  6. Overklig motor . Hämtad 30 juli 2018. Arkiverad från originalet 11 april 2015.
  7. Mozilla och Epic Preview Unreal Engine 4 körs i Firefox . Hämtad 30 juli 2018. Arkiverad från originalet 6 oktober 2014.
  8. Emscripten-kompilatorn har nått möjligheten att bygga om sin egen arkivkopia av 7 april 2014 på Wayback Machine // opennet.ru 11/13/2012