Emscripten

Z Wikipedii, wolnej encyklopedii
Przejdź do nawigacji Przejdź do wyszukiwania
Emscripten
Logo Emscripten
Logo programu
Autor Alon Zakai
Aktualna wersja stabilna 2.0.24
(10 czerwca 2021) [±]
Rodzaj kompilator
Strona internetowa

Emscripten - kompilator kodu LLVM do Javascriptu[1] lub WebAssembly[2]. Skompilowane programy działają na każdym silniku JavaScriptu kompatybilnym ze specyfikacją EcmaScript 5, z szybkością dochodzącą do 2/3 szybkości programów natywnych[3]. Kompilacja odbywa się przez skompilowanie kodu źródłowego do kodu bajtowego LLVM (zwykle kodu C lub C++ z użyciem Clanga), a następnie do kodu asm.js z wykorzystaniem HTML5 do obsługi multimediów. Emscripten stworzono do przenoszenia gier (implementuje SDL, OpenGL i inne popularne API) i przeniesiono nań silnik Unreal Engine 4[4]. Działają w nim jednak praktycznie dowolne aplikacje, czego przykładem jest środowisko Qt[5]. Licencja Emscripten umożliwia bezpłatne wykorzystanie komercyjne[6].

Zastosowanie i rozwiązania alternatywne[edytuj | edytuj kod]

Mniej więcej od 2010 r. znacznie poprawiono wydajność maszyn wirtualnych Javascript, dodano optymalizację języka (asm.js i jego rozszerzenia SIMD), a w przeglądarkach ustandaryzowano obsługę nowoczesnych multimediów (HTML5). W związku z tym pojawiła się możliwość tworzenia dużych aplikacji w całości lub w znacznym stopniu działających po stronie przeglądarki, a także próby przenoszenia istniejących programów (głównie gier) i wynikające z tego zapotrzebowanie na kompilatory różnych języków do Javascriptu.

Przypisy[edytuj | edytuj kod]

  1. Main — Emscripten 1.37.22 documentation, kripken.github.io [dostęp 2017-11-17] (ang.).
  2. Building to WebAssembly (ang.). [dostęp 2021-09-23].
  3. Gap between asm.js and native performance gets even narrower with float32 optimizations – Mozilla Hacks – the Web developer blog, hacks.mozilla.org [dostęp 2017-11-17] (ang.).
  4. Mozilla and Epic Preview Unreal Engine 4 Running in Firefox.
  5. Wiki - emscripten-qt - Redmine, vps2.etotheipiplusone.com:30176 [dostęp 2017-11-17] (ang.).
  6. Open Source License — Emscripten 1.37.22 documentation, kripken.github.io [dostęp 2017-11-17] (ang.).