Добавление языка в AVM2 - PullRequest
4 голосов
/ 21 января 2009

Я заинтересован в создании языка для AVM2, и я ищу совет, с чего начать. Я понимаю, что это отнюдь не тривиальная задача, но я хотел бы попробовать и, по крайней мере, узнать больше о реализации языка в процессе.

Я возился с ANTLR и изучал вопросы синтаксиса для развития языка. То, что я ищу, - это советы по выбору пути или полезные ссылки / книги.

Например, я хотел бы сгенерировать (скрипт / вручную) какой-нибудь очень простой байт-код AVM2 и заставить его запускаться на ВМ в качестве запуска.

Спасибо

Ответы [ 3 ]

4 голосов
/ 21 января 2009

Если вас не интересует Haxe, вам, в основном, нужно написать собственный компилятор, который компилирует объекты в ABC (байт-код Actionscript). Документ AVM2 Overview , доступный в Adobe на ABC и AVM2, который должен помочь вам начать работу. Это довольно подробный документ, но будьте внимательны к нескольким опечаткам в инструкциях байт-кода.

Вам также нужно будет обернуть байт-код в тег doABC как часть контейнера SWF. Вы можете получить дополнительную информацию из документации SWF File Format .

Если вы хотите начать писать структуры данных (оптимизированные форматы int и т. Д.), Не стесняйтесь проверять код в asmock, проекте динамического моделирования, над которым я работал. Материал генерации SWF / ByteCode немного запутан, но есть обертки IDataOutput ( SWF , ByteCode ), которые могут пригодиться.

1 голос
/ 27 декабря 2009

Project Alchemy от Adobe может быть хорошим справочным материалом http://labs.adobe.com/technologies/alchemy/

Как все прошло? Я также заинтересован в создании компилятора Java to AVM2 ... У вас есть опубликованный код?

1 голос
/ 21 января 2009

Взгляните на Haxe : это язык с открытым исходным кодом, предназначенный для различных платформ, включая AVM. Вы можете покопаться в исходном коде SWF-компилятора, чтобы получить вдохновение.

...