The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

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

20.11.2008 15:34

Компания 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.

  1. Главная ссылка к новости (http://developers.slashdot.org...)
  2. OpenNews: Новая версия набора компиляторов LLVM Compiler 2.4
  3. OpenNews: Возможность разрабатывать скрипты для web-браузера на языках Си и Python
  4. OpenNews: Реализация Ruby и Java на JavaScript
  5. OpenNews: JavaScript реализации Ruby, выполненная в V8 VM, оказалась быстрее интерпретатора Ruby
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/19008-flash
Ключевые слова: flash, vm, llvm, gcc, compile
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (43) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, FSA (??), 15:46, 20/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Что-то я не понимаю смысл телодвижений. Это всё равно что написать компилятор преобразующий код Си++ в Visual Basic инструкции...
     
     
  • 2.3, User294 (ok), 16:00, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Ты только представь себе - флеш ролик будет ... выполнять приложения в VM.Такие вот видеофрагменты, бэть!Эдак оно скоро будет само себе операционной системой.Или даже запустит внутри себя операционку =) какой ахтунг =)
     
     
  • 3.28, Аноним (-), 21:43, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Не. в нём будет браузер :)
     
     
  • 4.43, User294 (ok), 04:01, 23/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Не. в нём будет браузер :)

    А в нем будет флеш.А в нем будет браузер.Рекурсия...

     

  • 1.2, D4rk4 (?), 15:53, 20/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Интересно, кто-нить ядро портирует?
     
  • 1.4, Анонимус (?), 16:15, 20/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А, ну да, скоро будем и видео в инете конвертировать, и операционки будут грузиться с сайтов...


    Представляю:

    RamblerOS - только у нас самый удобный рабочий стол!

    googleworkspase - лучший стол! Cделать страницей по умолчанию?


    www.pornyxa-online - у нас тоже есть рабочий стол! Присоединяйтесь!

     
     
  • 2.14, Lattenwald (?), 17:44, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > операционки будут грузиться с сайтов...

    http://oos.cc/

     
     
  • 3.31, barmaglot (??), 22:44, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Нее ... это не кошерно :( А где спрашивется GCC, где понимаешь-ли IDE, и вообще, что за издевательство - никакой трахатни. Так и отупеть можно. А куда мазохистам-псевдокодерам деваться ? Все писюки щас переведут на загрузку из БИОС-а, и сразу в тырнеты а там стол ... И никакой тебе порнухи на 40ГБ ...
     

  • 1.5, Анонимус (?), 16:16, 20/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Радует только то, что вскоре под линухом флеш не будет так неправильно грузить процессор
     
     
  • 2.7, Guest (??), 16:29, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Кто тебе такой бред сказал?
     

  • 1.6, usr (?), 16:22, 20/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Разработчикам, конечно, респект. Но как-то я не пойму шумихи вокруг flash/flex/air: закладку не сделаешь, поисковые боты не проиндексируют. Снова этот долбаный xml, никакой type safety естественно. Все движется только за счет имени Adobe и дебильных клиентов/project managers. Пользователям в 98% такое Щастье нафиг не нужно(функционал приближается к десктопному, при интерфейс НЕ стандартизован). И к чему придем? Web 3.0 html-only (ибо пользователей за№бет все это многообразие)?
     
     
  • 2.11, andr.mobi (??), 16:54, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > Разработчикам, конечно, респект. Но как-то я не пойму

    Я счаслив, что на моей Опера в БЗДе эта хрень не работает.

    Иногда в гостях под маздаем на половине сайтов, куда хожу, посреди экрана торчит флэш (ещё с наглым крестиком, приглашающим закрыть - для особо одарённых лохов). Уже давно бы бросил, а сайты вообще-то полезные. Натахауз например.

    Если бы от всего, чего лепят, была бы польза - уже давно бы все в шоколаде жили.

     
     
  • 3.16, Аноним (16), 18:52, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Эта хрень на опере и бзд не работает не потому, что опера и бзд - круто, а потому что дерьмо. В FF есть FlashBlock. Который регламентирует, когда надо работать, когда нет. А Опера - жри чего дают. Не подкрутить, ни расширить.
     
     
  • 4.19, Аноним (16), 19:21, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Эта хрень на опере и бзд не работает не потому, что опера
    >и бзд - круто, а потому что дерьмо. В FF есть
    >FlashBlock. Который регламентирует, когда надо работать, когда нет. А Опера -
    >жри чего дают. Не подкрутить, ни расширить.

    Чушь. В Опере есть правый клик мыши и пункт меню "Блокировать содержимое...". Всё. То, что в лисе достигается с помощью встраиваемых костылей, в Опере есть из коробки. Кстати, для любителей костылей там тоже есть виджеты.

     
     
  • 5.23, User294 (??), 19:49, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Чушь. В Опере есть правый клик мыши и пункт меню "Блокировать содержимое...".
    >Всё.

    Я с интересом бы посмотрел - что такое "правый клик мыши" в флешовом содержимом, ага.А ничего что там при этом вылезает менюха флеш плеера с настройками?Или некоторые ролики сами обрабатывают эту кнопку мыши.Задолбаетесь кликать правой кнопкой.В фаерфоксине есть с дюжину удобных методов работы с флешом на вкус и цвет.Можно одним кликом on demand скажем нужный ролик разрешать на 1 раз noscript'ом.Или можно разрешить по вилдкарду какому-то сайту его активность.Или можно удавить только раздражающие ролики адблоком если колупаться с разрешением каждого ролика влом.Вариантов немеряно и можно найти именно тот который наиболее удобен именно мне.

    А если оно у вас не работает и нет проблем - никто и не сомневался что гильотина надежно избавляет от головной боли - возьмите на заметку, так что в случае если вы заболели, пулю в лоб и - минздрав гарантирует: больше вы болеть не будете!Вот только видео с того же ютуба и т.п. иногда посмотреть охота.И оное даже при всей тупорылости UI флеша в плане букмарков - можно забукмаркать.

     
     
  • 6.29, Руслан (?), 22:01, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Я с интересом бы посмотрел - что такое "правый клик мыши" в
    >флешовом содержимом, ага.А ничего что там при этом вылезает менюха флеш

    Попробуй снова, тебе понравится. Только надо щелкать не на флеше или картинках баннеров, а на тексте страницы.
    Появляется пункт "Block content" и открывается режим легкого выбора "лишнего контента". Можно перейти в "нелегкий" режим - отредактировать выбранные URL руками в менюшке.
    Я так блокирую целые баннерные сети и ифреймы на подозрительных ресурсах.
    (дополнительная кнопка Info в сайдбаре показывает все источники контента на странице)

    У меня в браузере astalavista.box.sk открывается как приличный сайт! Без рекламы порно и прочей ботвы. И всё "искаропки" - не надо скачивать лишнее дополнение и заботиться об утечках памяти.

    Понимаю, аптайм браузеров - тема для сумашедших, но утечек памяти в опере так мало, что я браузер месяцами не закрываю, только потому, что в каждом из десятков табов у меня что-то написано и незавершено. Или завершено, но по тем или иным причинам мне надо нажать назад и посмотреть, что я писал, но оно не отправилось. В кеш попадает не только загруженная страница, но и введенные пользователем данные. До перезаг^H^H^H^H^H^Hзакрытия браузера.

    Удачи! :)

     
  • 5.25, Dimka (??), 20:24, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Чушь. В Опере есть правый клик мыши и пункт меню "Блокировать содержимое...".
    >Всё. То, что в лисе достигается с помощью встраиваемых костылей, в
    >Опере есть из коробки. Кстати, для любителей костылей там тоже есть
    >виджеты.

    Кто Вам сказаал что дополнения в лисе это костыли? Опера и ФФ основаны на разных моделях разработки в одной есть все (даже то что ненадо), в другом нету по дефолту почти ничего даже флеша и все что надо и даже больше чем в Опере можно поставить дополнениями. Из-за этого я вибырию ФФ, кто-то выбирет Оперу кому как удобнее и ничего более

     
     
  • 6.26, fix (??), 21:12, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >все что надо и даже больше чем в Опере можно поставить дополнениями

    и как оно после этого будет тормозить

     
  • 6.35, Аноним (16), 12:02, 21/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Из-за этого я вибырию ФФ, кто-то выбирет Оперу кому как удобнее и ничего более

    Согласен с Вами. Мой комментарий предназначался в основном другому оратору, употреблявшему эмоциональные термины типа "хрень", "дерьмо" и "жри что дают".


     
  • 5.30, User294 (??), 22:24, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >виджеты.

    Useless crap на фоне аддонов фокса.

     
     
  • 6.36, Аноним (16), 12:07, 21/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>виджеты.
    >
    >Useless crap на фоне аддонов фокса.

    Может быть. Я в костылях не разбираюсь :)

     
  • 4.38, grayich (ok), 14:51, 21/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Эта хрень на опере и бзд не работает не потому, что опера
    >и бзд - круто, а потому что дерьмо. В FF есть
    >FlashBlock. Который регламентирует, когда надо работать, когда нет. А Опера -
    >жри чего дают. Не подкрутить, ни расширить.

    а в gnash и swfdec функционал FlashBlock встроенный ...

     
  • 2.12, alp (?), 16:56, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Ты неправ. Есть оффлайновое приложение. Для того, что бы перевести его в онлайн надо переписать солидную его часть. А тут ты можешь с минимальными затратами собрать и оффлайновое и сетевое приложения.
     
     
  • 3.17, Аноним (16), 18:55, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Ерунду говорите. Локальный веб-сервер + Prism. Чего проще... Такую фигню делали еще в начале 2000-х без всякого Призма. Просто на формочке embedded-html контролка.
     
     
  • 4.20, szh (ok), 19:24, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Ерунду говорите. Локальный веб-сервер + Prism. Чего проще... Такую фигню делали еще
    >в начале 2000-х без всякого Призма. Просто на формочке embedded-html контролка.
    >

    Ага всем пользоватлям веб-сервер кто устанавливать будет? Дед мороз ?

     
     
  • 5.33, Аноним (16), 05:16, 21/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Откуда такие как вы беретесь? Веб-сервер - это просто открытый сокет, которые отдает и принимает поток текста. И все. В простейшем случае - сотни строк кода. Его можно встроить в само приложение. Или у вас, как у ламера, к термину "веб-сервер" в голове прочно гвоздями прибит Apache?
     
     
  • 6.40, szh (ok), 01:27, 22/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    > Просто на формочке embedded-html контролка.

    формочка на чем и под какие ОС ?

    Javascript эти формочки поддерживают ? (движки от МС не предлагать)


    Как минимум лишний язык программирования, и время на написание своего вебсервера.
    Кроме того ваш вариант не поддерживает XUL.

     
     
  • 7.41, Аноним (16), 12:59, 22/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Я еще раз спрашиваю: какому городу русская земля обязана таким талантливым раздолбаям, как вы?

    Какая разница на чем формочка и под какую ОС? Сейчас браузерный движек можно встроить куда угодно. Хоть gecko, хоть webkit. А можно в инсталлятор Prism положить. В чем проблема?

    >время на написание своего вебсервера.

    А время на написание своей ОС вы почему не посчитали? Чем не устраивают десятки существующих вебсерверов?

    >Кроме того ваш вариант не поддерживает XUL.

    А на кой он нужен?

     
  • 2.15, Tiv (??), 17:55, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    На самом деле, не интернетом единым живем. Последний проект с толстым клиентом в котором я участвовал, был в 2004 году. С тех пор все проекты делаются исключительно с тонким клиентом. При том, заказчики требуют тонкий GUI сложнее, чем в первую половину 2000x на Delphi, а сам html не менялся уже давно. Идея ajax страшный костыль. Всякие компоненты с ajax типа RichFaces, ADF Faces помогают, конечно, но геморроя все равно достаточно. Я попробывал Flex, поделал примеры. Вобщем то достаточно удобно. Клиент получает толстого клиента в браузере. К сожалению, мне показалось не совсем удобным api взаимодействия с серверной частью. А так, либо html изменится в сторону динамичности, но это будет уже не текст с гиперссылками а что-то GWT подобное наверно со своим языком, либо его заменит что-то типа Flex. Текущая ситуация с моей точки зрения уже тупиковая.
     
     
  • 3.18, Аноним (-), 19:08, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Наверное надо подумать и XUL
    весьма приятная вещица для таких вот задач
     
     
  • 4.21, Tiv (??), 19:25, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >Наверное надо подумать и XUL
    >весьма приятная вещица для таких вот задач

    Может я не правильно понимаю, но мое приложение тогда будет плагином к FireFox. Все таки это не одно и тоже, что загрузить страничку. Это скорее может соревноваться с Java Web Start, но думаю, что Java Web Start значительно функциональный будет. Смысл один и тот же толстое приложение в песочнице, которое можно установить/обновить кликом по ссылке.

     
     
  • 5.24, szh (ok), 20:05, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Нет,
    На XUL можно писать вебстраницы. Замена html с дополнительными возможностями. Но нету форм, так что все на ajax.
     

  • 1.8, Guest (??), 16:30, 20/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Лучше бы они наоборот сделали - пересобрать флеш ролик в нативное приложение, которому не нужны ни браузеры ни виртуальная машина.
     
  • 1.9, HounD (?), 16:32, 20/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    ...ааааа они изобрели JVM и апплеты
     
  • 1.10, fresco (??), 16:34, 20/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    это они типа на роль java так замахиваются?
     
  • 1.13, F (?), 17:19, 20/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    C и C++ как-бы не совсем те языки, которые удобно компилировать в байт-код для VM. Зачем же так извращаться?
     
     
  • 2.22, Аноним (16), 19:26, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >C и C++ как-бы не совсем те языки, которые удобно компилировать в
    >байт-код для VM. Зачем же так извращаться?

    Не знаю как компилировать, но вот _писать_ на С[++] под байт-код - это действительно извращение...

     
     
  • 3.32, Archer (??), 22:53, 20/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >>C и C++ как-бы не совсем те языки, которые удобно компилировать в
    >>байт-код для VM. Зачем же так извращаться?
    >
    >Не знаю как компилировать, но вот _писать_ на С[++] под байт-код -
    >это действительно извращение...

    Это не для писать, это для портировать, ИМХО. Вряд ли Flash Crowd сползёт с ActionScript

     
  • 2.37, sluge (??), 13:21, 21/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    >C и C++ как-бы не совсем те языки, которые удобно компилировать в
    >байт-код для VM. Зачем же так извращаться?

    чем с++ хуже java, которая отлично компилируется в байт код?

     
     
  • 3.39, Аноним (16), 18:02, 21/11/2008 [^] [^^] [^^^] [ответить]  
  • +/

    >чем с++ хуже java, которая отлично компилируется в байт код?

    Ничем не хуже. Даже лучше. Поэтому и не компилируется в байт-код :)

     
  • 3.42, F (?), 15:38, 22/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Смысла компилировать Java под адобовскую VM нет, потому что для Java-программ есть своя VM, причем, более развитая.
     
  • 2.45, Fantomas (??), 00:16, 25/11/2008 [^] [^^] [^^^] [ответить]  
  • +/
    Ответ очевиден прямо из темы... Что бы исходные коды OpenSource собрать под эту ...ню от Adobe...
     

  • 1.34, Аноним (34), 07:42, 21/11/2008 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    1) Хм. Интересно, а как они собираются увеличить скорость? Специальные объекты представляющие низкоуровневые операции, или все же это будет уже не ABCScript, а некий специальный тэг содержащий уже что-то более низкоуровневое? Хотя если JIT Tamarin, то видимо все же именно ABCScript.

    2) В свое время, дабы не использовать разный код AJAX для разных браузеров (проверялось для IE6 и FF1.5), делал следующее: для каждой транзакции JavaScript'ом создается невидимый IFRAME с формой...
    По поводу Flash: главный плюс - это компактность (линия 56kbit/s, например). Впрочем, любой HTTP контент можно жать и все современные браузеры это поддерживают, вот если б еще кто это использовал...

     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру