Emscripts

Emscripten er en LLVM- til-nett- kompilator . Emscripten kompilerer LLVM- samlingskode til standard JavaScript eller til WebAssembly . Avhengig av programmeringsspråket som brukes, følges forskjellige tilnærminger i oversettelsen. Kildekoden oversettes enten direkte fra LLVM bytecode til JavaScript (f.eks. C ++ eller C), eller eksekveringsmiljøet til programmeringsspråket oversettes til JavaScript. Det kompilerte kjøringsmiljøet blir deretter brukt til å utføre kode for det respektive programmeringsspråket (f.eks. CPython ). Emscripten støtter en rekke programmeringsspråk, men utviklerne fokuserer på å oversette C og C ++ .

Et eksempel på bruk av Emscripts viser porteringen av Unreal Engine 4 til JavaScript.

Oversettelsesprosess

Den første fasen av kompileringsprosessen er LLVM- frontend. LLVM-frontend som brukes, oversetter kildekoden til språket som brukes til LLVM-samlerkode (LLVM Intermediate Representation). For eksempel kan Clang brukes til å oversette C ++ - kode . Den genererte LLVM-samlekoden blir deretter oversatt til målspråket av LLVM med den tilsvarende backend. Normalt vil den kjørbare assembler-maskinkoden for en bestemt plattform bli generert i backend. Emscript-kompilatoren påtar seg denne rollen i stedet. Emscript-kompilatoren oversetter den genererte LLVM-samlekoden til et høytytbart oversettbart delsett av JavaScript ( asm.js ).

opptreden

I motsetning til utførelsen av innfødte applikasjoner er kjøringshastigheten for skriptgenerert JavaScript-kode betydelig lavere. Nettleseren som brukes, spiller også en viktig rolle her; ytelsen varierer veldig avhengig av applikasjonen. En optimistisk retningslinje er omtrent det dobbelte av gjennomføringstiden. Når det gjelder ytelseskritiske applikasjoner, må derfor også eksekveringsmiljøet spesifiseres nøyaktig.

Tillatelse

Emscripten kan brukes som fri programvare under to forskjellige lisenser: MIT-lisens og University of Illinois / NCSA Open Source License .

bruk

Siden 23. desember 2014 brukte Internet Archive , en emscripten-konvertert DOSBox- emulering for nettleserbasert presentasjon av tusenvis av arkiverte DOS - dataspill , bare for "utdanning og forskning" .

Individuelle bevis

  1. Zakai, Alon. "Emscripten: en LLVM-til-JavaScript-kompilator." Prosedyrene til den internasjonale konferanseselskapet ACM om objektorienterte programmeringssystemspråk og applikasjonsledsager. ACM, 2011.
  2. https://github.com/kripken/emscripten/wiki#programming-languages
  3. https://blog.mozilla.org/blog/2014/03/12/mozilla-and-epic-preview-unreal-engine-4-running-in-firefox/
  4. http://arewefastyet.com/#machine=11&view=breakdown&suite=asmjs-ubench
  5. https://kripken.github.io/mloc_emscripten_talk/gindex.html#/11
  6. Abby Ohlheiser: Du kan nå spille nesten 2400 MS-DOS videospill i nettleseren din . Washington Post . 5. januar 2015. Hentet 8. januar 2015.
  7. Every New Boot a Miracle av Jason Scott (23. desember 2014)
  8. samling: softwarelibrary_msdos i Internett-arkivet (29. desember 2014)
  9. Internet Archive's vilkår for bruk, personvernregler og copyright policy . archive.org. 31. desember 2014. Hentet 8. januar 2015: " Tilgang til arkivets samlinger gis uten kostnad for deg og er kun gitt for stipend og forskningsformål. "

weblenker