Можно было бы. Только тогда надо забыть о пользовательских процедурах на ассемблере, иначе мне придется еще писать и кросс-ассемблер.В принципе, насколько я знаю, можно сделать BAT-ник, в котором две команды:
- кросс-компиляция Паскаля в Асм (это ZX Like Pascal умеет);
- запуск кросс-ассемблера (например, sjasm) и подсовывание ему асмовского файла.
Знающие люди, надеюсь, напишут тут, как это сделать.
В отдаленном будущем планируется сделать родной (не кросс) Паскаль для Спектрума. Причем да, более приближенный к оригинальному Паскалю. Тем более, это позволит компилировать исходник компилятора самим компилятором, как учит Н.Вирт. Не на ассемблере же его писать.
Оптимизации многие есть. А вот раскрытие циклов не стал делать, т.к. посчитал, что для вывода спрайтов достаточно встроенных моих процедур (там раскрытие циклов сделано уже в асмовском коде), а для остального вроде и не надо + отжирает память.
По-видимому, придется. Т.к. изобретать велосипед - неблагодарное дело. Просто, это мой первый блин COM-ом, хотел сам написать, чтоб прочувствовать. На самом деле, это нелегко написать полноценный компилятор, подтверждение тому - постоянно всплывающие баги, так что лучше пользоваться наработками опытных. Я до сих пор не могу сделать поддержку хотя бы параметров процедур - головоломка. Кстати, пробовал брать полный исходник Оберона из книги Вирта "Построение компиляторов" и переделать на Паскаль, но пока тоже не осилил.
- - - Добавлено - - -
Моя статья по генерации кода и оптимизациям ZX Like Pascal есть тут или тут





В принципе, насколько я знаю, можно сделать BAT-ник, в котором две команды:
Ответить с цитированием