Компания Adobe представила C/C++ компилятор, генерирующий код для Flash

20 ноября 2008 года

Компания Adobe выпустила тестовую версию компилятора alchemy, предназначенного для сборки программ, написанных на языках Си и Си++, в байткод AS3, пригодный для выполнения в виртуальной машине ActionScript Virtual Machine (AVM2). Результатом сборки является SWF или SWC файл, пригодный для выполнения в Flash Player 10 или Adobe AIR 1.5. Разработка базируется на использовании открытого компилятора LLVM (Low Level Virtual Machine).

Основная цель проекта alchemy - разработка на языке Си/Си++ универсальных библиотек функций, с реализацией требующих интенсивных вычислений операций, таких как кодирование аудио/видео, преобразование данных, парсинг XML, криптографические операции, симулирование физических процессов. При написании таких библиотек на языке Си/Си++ производительность, при выполнении в виртуальной машине AVM2 будет значительно выше, чем при их реализации на ActionScript 3.0, но все же в 2-10 раз медленнее чем при стандартной компиляции в машинный код.

Для работы программ доступен POSIX совместимый API, а также специальная мультимедийная библиотека, предоставляющая интерфейс к функциям технологии Flash. Для прямого доступа к памяти из Си программ, был разработан специальный режим эмуляции, осуществляющий маппинг блоков памяти внутри VM, немного замедляющий работу программ. Исходные тексты новой системы планируется представить под одной из открытых лицензий. В настоящее время представлены только бинарные сборки alchemy для Linux, Mac OS X и Windows.

Принцип работы компилятора:

  • При помощи LLVM, Си программа преобразуется в набор инструкций для абстрактной виртуальной машины;
  • LLVM инструкции преобразуются в объектный код, специфичный для виртуальной машины, выполняющей ActionScript;
  • ActionScript автоматически компилируется в байткод пригодный для запуска в Adobe Flash. Байткод в дальнейшем может быть преобразован в машинные инструкции при помощи JIT-компилятора из состава проекта Tamarin.

Первый раз технология была представлена в прошлом году на выставке MAX 2007, тогда специалисты из Adobe продемонстрировали выполнения игры Quake в окне браузера. Позднее для выполнения в виртуальной машине Flash удалось адаптировать интерпретаторы языков программирования Python, Lua, Ruby,Perl и эмулятор платформы Nintendo.

Источники править


 
 
Creative Commons
Эта статья содержит материалы из статьи «Компания Adobe представила C/C++ компилятор, генерирующий код для Flash», опубликованной OpenNET и распространяющейся на условиях лицензии Creative Commons Attribution (CC BY) — указание автора, источник и лицензию.
 
Эта статья загружена автоматически ботом NewsBots в архив и ещё не проверялась редакторами Викиновостей.
Любой участник может оформить статью: добавить иллюстрации, викифицировать, заполнить шаблоны и добавить категории.
Любой редактор может снять этот шаблон после оформления и проверки.

Комментарии

Викиновости и Wikimedia Foundation не несут ответственности за любые материалы и точки зрения, находящиеся на странице и в разделе комментариев.