О космических технологиях. Так, прикидочные расчёты, самому интересно. Движемся в обратную сторону.
Расход памяти при сборке demo_z.pas около 6.7 мегабайт.
Если переписать препроцессор и лексический анализатор, то можно убрать 1.7, останется 5 мегабайт.
Выбрасываем пост-оптимизацию, чтобы не хранить выходной текст в памяти, или сгружаем на диск - минус 2.6 мегабайта, остаётся 2.4 мегабайта.
Переделываем транслятор в промежуточный код, ограничиваем размер подпрограммы - минус 1.1 мегабайта, остаётся 1.3 мегабайта.
Выбрасываем смарт-линк и некоторые другие фичи, транслируем всё подряд - ещё минус 0.8, остаётся 0.5.
Много указателей, они сейчас 64-битные, если 32 бита - ну, раза в полтора уменьшится. 300 килобайт.
Хранить статически, а не в куче - будет ещё меньше.
Да можно вообще управиться за один проход и хранить только видимые идентификаторы - 100 килобайт.
16-битные указатели - вау, 64 килобайта.
То есть возможно, но это будет уже извращённое программирование и потеря многих функций.
Да, это кросс, который в той или иной степени уже может Z80, STM8, PIC24, PIC32 (MIPS), STM32 (ARM), и даже собирает сам себя под 80386 и потом запускается, но не до конца работает![]()




Ответить с цитированием