Emscripten

Den aktuelle version af siden er endnu ikke blevet gennemgået af erfarne bidragydere og kan afvige væsentligt fra den version , der blev gennemgået den 22. marts 2019; checks kræver 12 redigeringer .
Emscripten
Type Transpiler
Udvikler Alon Zakai
Skrevet i C [2] , C++ og JavaScript
Operativ system på tværs af platforme
Hardware platform på tværs af platforme
nyeste version 3.1.15 [1] ( 1. juli 2022 )
Licens MIT-licens og University of Illinois åben licens [d]
Internet side emscripten.org


Emscripten  er en LLVM bytecode - to- JavaScript compiler , der kan køres i en webbrowser [3] . LLVM-bytekode kan fås fra kildekoden C eller C ++ .

Grundlæggeren af ​​projektet er Alon Zakai. Distribueret under MIT-licensen .

JavaScript-udviklere står ofte over for svære opgaver, som ofte allerede er løst, men ikke i det JavaScript, de har brug for, men i et helt andet programmeringssprog . At omskrive titusinder eller endda hundredtusindvis af linjer kode fra C/C++ til JavaScript er en amatørfornøjelse. Det øger overhovedet ikke spændingen.

Et yderligere problem med portering er, at kodeemulering notorisk er mindre effektiv end native kodeudførelse . Og når hastigheden af ​​trin-for-trin modellering af driften af ​​en andens processor ikke er nok, er de nødt til at tilføje dynamisk rekompilering - automatisk oversættelse af sektioner af den emulerede kode til JavaScript. Det er ret svært, men efter at være blevet refaktoreret af en smart JIT-kompiler, bliver koden hurtigere.

Udviklingsmålet for Emscripten-projektet er at skabe et værktøj, der gør det muligt at udføre kode på internettet , uanset hvilket programmeringssprog denne kode er skrevet på. Emscripten giver dig mulighed for at kompilere LLVM-bytekode til JavaScript-kode, der kan udføres inde i en webbrowser ved kun at bruge en almindelig JavaScript-motor uden behov for yderligere plugins. LLVM-bytekode kan genereres fra C/C++-kilder ved hjælp af llvm-gcc og clang-kompilatorerne , såvel som fra kode i et andet programmeringssprog, som der er en LLVM-frontend til. Emscripten understøtter oversættelse af SDL -output gennem lærred og understøtter også OpenGL gennem WebGL .

Projekter, der med succes er blevet rekompileret til at køre i browseren, omfatter NetBSD -kernen , CPython , Ruby og Lua - fortolkerne , Poppler PDF - fremviseren , FreeType TrueType-skrifttypegengivelsessystemet , H.264 -videodekoderen , Doom [4] og Doom 3 spil [5] , spilmotoren Unreal Engine [6] [7] og andre. [otte]

Noter

  1. 3.1.15 . Hentet 1. juli 2022. Arkiveret fra originalen 1. juli 2022.
  2. Emscripten Open Source Project på Open Hub: Languages-side - 2006.
  3. Walton, Zach Portér nemt C++ til HTML5/JavaScript med Emscripten (link ikke tilgængeligt) . webpronews . iEntry Network (4. april 2012). Hentet 30. juli 2018. Arkiveret fra originalen 30. juli 2013. 
  4. JS-DOS/SPIL/DOOM . Hentet 30. juli 2018. Arkiveret fra originalen 19. juli 2018.
  5. D3Wasm: en port af id Tech 4 / Doom 3-motor til WebAssembly . Hentet 1. marts 2019. Arkiveret fra originalen 4. marts 2019.
  6. Unreal Engine . Hentet 30. juli 2018. Arkiveret fra originalen 11. april 2015.
  7. Mozilla og Epic Preview Unreal Engine 4 kører i Firefox . Hentet 30. juli 2018. Arkiveret fra originalen 6. oktober 2014.
  8. Emscripten-kompileren har nået muligheden for sin egen genopbygning af arkivkopi af 7. april 2014 på Wayback Machine // opennet.ru 11/13/2012