![]() | |
Тип | транскомпілятор |
---|---|
Розробник | Alon Zakai |
Стабільний випуск | 1.28 (12 грудня,2014; 10 років тому (2014-12-12)) |
Платформа | кросплятформність ![]() |
Операційна система | кросплятформність ![]() |
Мова програмування | JavaScript |
Стан розробки | активний |
Ліцензія | MIT License |
Репозиторій | github.com/emscripten-core/emscripten |
Вебсайт | emscripten.org |
Emscripten —компілятор типу код-у-код аботранскомпілятор. На вході він приймаєLLVM-байткод, звичайно отриманий компіляцієюпочаткового коду мовоюC абоC++. На виході він видає файл з кодом мовоюJavaScript, що може бути запущений увебпереглядачі.[1]
Засновником проекту є Алон Закай (Alon Zakai). Поширюється на умовахліцензії MIT.
Основною метою розвитку проекту Emscripten є створення інструменту, який дозволив би виконувати уВебі код незалежно відмови програмування, якою цей код написаний. Emscripten дозволяє здійснити компіляцію біткода LLVM в скрипт мовою JavaScript, який може бути виконаний всередині веббраузера, використовуючи тільки штатнийJavaScript-рушій, без необхідності задіяння додатковихплаґінів. Біткод LLVM може бути згенерований зпочаткових текстів C/C++ за допомогою компіляторів lvm-gcc іclang, а також з коду на будь-якою іншою мовою програмування, для якої є LLVM-фронтенд. Emscripten підтримує трансляцію виведення бібліотекиSDL черезcanvas, а також надає підтримкуOpenGL черезWebGL.
Серед проектів, які вдалося успішно перезібрати для роботи в браузері, можна відзначити ядроNetBSD,інтерпретаториCPython,Ruby іLua,PDF-переглядачPoppler, систему рендерингаTrueType-шрифтівFreeType, декодувальник відеоH.264, груDoom, 3D груBananaBread засновану нарушії Sauerbraten,ігровий рушійUnreal Engine[2][3],Quake.[4]