Увидел свет Emscripten 1.4, компилятор байткода LLVM в JavaScript-представление
Компилятор написан на языке 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, движок симуляции физических процессов Bullet 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
|
0 | Tweet | Нравится |
|