Emscripten | |
---|---|
![]() | |
Тип | компилятор |
Разработчик | Alon Zakai |
Написана на | JavaScript |
Операционная система | кроссплатформенность |
Аппаратная платформа | кроссплатформенность |
Последняя версия | 1.38.10[1] |
Состояние | активный |
Лицензия | MIT License |
Сайт | emscripten.org |
Emscripten — компилятор LLVM-байткода в код JavaScript, который может быть запущен в веб-браузере.[2]. LLVM-байткод может быть получен из исходного кода на языке C или C++.
Основателем проекта является Алон Закай (Alon Zakai). Распространяется по лицензии MIT.
JavaScript-разработчики довольно часто сталкиваются с непростыми задачами, которые зачастую уже решены, но не на нужном им JavaScript, а совсем на другом языке программирования. Переписывать десятки, а то и сотни тысяч строк кода с C / C ++ на JavaScript - удовольствие на любителя. Это вовсе не прибавляет энтузиазма.
Дополнительная проблема портирования связана с тем, что эмуляция кода заведомо менее эффективна, чем исполнение нативного кода. И когда скорости пошагового моделирования работы чужого процессора не хватает, им приходится добавлять динамическую рекомпиляцию - автоматический перевод участков эмулируемоэо кода в JavaScript. Это довольно трудно, но после переработки умным JIT-компилятором код становится быстрее.
Целью развития проекта 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[3], игровой движок Unreal Engine[4][5], и другие.[6]
Данная страница на сайте WikiSort.ru содержит текст со страницы сайта "Википедия".
Если Вы хотите её отредактировать, то можете сделать это на странице редактирования в Википедии.
Если сделанные Вами правки не будут кем-нибудь удалены, то через несколько дней они появятся на сайте WikiSort.ru .