Najlepsze pytania
Chronologia
Czat
Perspektywa

Emscripten

Z Wikipedii, wolnej encyklopedii

Remove ads

Emscriptenkompilator kodu LLVM do Javascriptu[1] lub WebAssembly[2]. Skompilowane programy działają 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). Następnie w zależności od wersji narzędzi do kodu asm.js z wykorzystaniem HTML5 do obsługi multimediów (do wersji 2.0) lub bezpośrednio do binarnego formatu WebAssembly (od wersji 2.0). 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].

Szybkie fakty Autor, Aktualna wersja stabilna ...
Remove ads

Zastosowanie i rozwiązania alternatywne

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). Proces poprawiania wydajności ewoluował poprzez możliwość łączenia interpretowanych fragmentów kodu Javascript z szybszym binarnym formatem WebAssembly. 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 formatu wspieranego przez przeglądarki internetowe.

Remove ads

Format docelowy kompilacji

Aktualnie domyślnym formatem wyjściowym dla kompilacji jest WebAssembly. Jest to format binarny, zoptymalizowany pod kątem szybkości wykonywania programu. Jedynie wstawki JavaScriptu są pozostawiane jako kod tegoż języka. W celu zachowania kompatybilności ze starszymi przeglądarkami, zgodnymi z EcmaScript 5 można jednak włączyć kompilację do asm.js[7] poprzez ustawienie flagi -sWASM=0.

Przypisy

Loading related searches...

Wikiwand - on

Seamless Wikipedia browsing. On steroids.

Remove ads