Artyemov писал(а):
"Не, не тараписса ненада".
)))))))).
Иван, давайте действительно подождем. Хочется сделать реальный кросс платформенный компилятор. И пока
Ormcode не дотягивает. Только десктопных недостаточно. Не хватает мобильной платформы. Решил начать с Android !!!.
Пошел по стандартному пути, с реализации байт кода JVM. Оказалось, что впрямую Android не поддерживает JVM. Требуется затем прогнать через компилятор D8 для перевода в байт код Dalvik VM. Появляется лишнее звено (((.
Решил отойти от стандарта и генерить сразу apk. Чуть сложнее. Зато никаких лишних прокладок и сторонних инструментов. На сегодня перегнал инструкции orm (
Oberon Risc Machine) в инструкции Dalvik - регистровой машины. Несмотря на похожую структуру (в следствии особенностей реализации) одна orm инструкция превращается в 3-5 инструкций dalvik. А для операций чтения/записи и до десятка доходит. Для примера конвертация orm -> risc-v идёт один в один. Зато понимаю почему Android приложение ‘здравствуй мир’ занимает 1.5Mb (((.
Следующий этап. Формирование dex - исполняемого файла Android. Дошагал до середины. Осталась скучная, неинтересная часть. Архитекторы андроид превзошли даже макосевцев с их мужественным файлом. Придумали восьмое чудо света - башню, чудом не дотянувшую до Вавилонской. Зато с кучей промежуточных уровней и многосвязных сортировок (((.
Решил отвлечься и разобраться с zip форматом. Заодно научится рисовать png картинку. В процессе узнал, что есть еще один графический формат qoi сопоставимый по степени сжатия с deflate, но в 10-ки раз быстрее и проще для реализации. Похоже надо qoi поддержку тоже делать. Если таможня даст добро ))).