[ON] Увидел свет Emscripten 1.4, компилятор байткода LLVM в JavaScript-представление

Обсуждение новостей, соответствующих тематике форума

Модератор: Модераторы разделов

Аватара пользователя
rssbot
Бот
Сообщения: 6000
ОС: gnu/linux

[ON] Увидел свет Emscripten 1.4, компилятор байткода LLVM в JavaScript-представление

Сообщение rssbot »


Доступен релиз проекта Emscripten 1.4, в рамках которого развивается компилятор, способный преобразовать байткод LLVM в представление на языке JavaScript. При этом байткод LLVM может быть сгенерирован из исходных текстов на Cи/Си++ при помощи компиляторов lvm-gcc и clang, а также из кода на любом другом языке программирования для которого имеется LLVM-фронтэнд. После компиляции на выходе получается скрипт на языке JavaScript, который может быть выполнен внутри web-браузера, используя только штатный JavaScript-движок, без необходимости задействования дополнительных плагинов. Код проекта Emscripten написан на языках JavaScript (непосредственно компилятор) и Python (тестовый фреймворк и управляющая утилита) и открыт под лицензией MIT. Основной целью разработки является создание инструмента, который бы позволил выполнять код в Web независимо от языка программирования, на котором данный код написан. Из JavaScript-движков поддерживаются Mozilla SpiderMonkey и Google V8, в остальных движках работа не гарантируется. Emscripten поддерживает трансляцию вывода библиотеки SDL через canvas, в разработке находится реализация поддержки OpenGL через WebGL. Скорость выполнения программ преобразованных в Javascript примерно в десять раз ниже, но ситуация меняется по мере реализации в JavaScript-движках новых методов оптимизации, кроме того некоторые дополнительные техники оптимизации планируется реализовать непосредственно в Emscripten. Интересной демонстрацией возможностей Emscripten стала компиляция в JavaScript-представление интерпретаторов CPython и Lua, которые удалось использовать для выполнения скриптов на языках Python и Lua внутри web-браузера. Из других примеров успешно преобразованных в JavaScript-представление проектов можно упомянуть, игру Doom, движок симуляции физических процессов Pullet physics (с визуализацией через WebGL), PDF-просмотрщик Poppler, систему трассировки лучей (рендеринг организован через canvas), JPEG-декодер OpenJPEG и рендеринг TrueType-шрифтов (использован FreeType). Главным новшеством выпуска Emscripten 1.4 является обеспечение поддержки компиляции динамических библиотек и их загрузки в виде JavaScript-модулей. При этом библиотеки могут использоваться не только неразрывно с каким-то компилируемым приложением, но и сами по себе, т.е. можно преобразовать в JavaScript какую-то полезную библиотеку и использовать её из обычных web-приложений. Из других похожих проектов можно отметить:
  • Google Web Toolkit (GWT) - набор средств для разработки динамических web-приложений, которые изначально могут быть написаны на языке Java, а затем при помощи специального транслятора преобразованы в представление на базе JavaScript и HTML;
  • Pyjamas - транслятор для преобразования кода на языке Python в представление на языке JavaScript;
  • FlashCCompiler - средство для преобразования LLVM-байткода в вид, пригодный для выполнения в виртуальной машине Adobe Flash;
  • Native Client - плагин, позволяющий выполнять в окне web-браузера обычные бинарные программы, ограниченные в специальном изолированном окружении.



Источник: http://www.opennet.ru/opennews/art.shtml?num=31155


оригинал на opennet.ru
Спасибо сказали: