Добавление языка в AVM2

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

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

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

Спасибо

3 ответа

Решение

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

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

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

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

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

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

Другие вопросы по тегам