Рапределение памяти при работе компилятора ЯВУ
Среди различных глупостей, которыми я занимаюсь, есть компилятор Паскаля. Задача: запустить его на Спектруме 48к или подобной платформе. Допустим, у этой платформы всё-таки есть некий дисковый/флэш накопитель с произвольным посекторным доступом.
В данный момент с использованием динамического распределения памяти на различные структуры при компиляции требуется раз в 50 больше памяти, чем занимают исходники. Понятно, что как ни уменьшай использование памяти, в 48 кБайтах компилятор работать не сможет. Как реализовать "виртуальную память" на несколько мегабайт? Самое простое что приходит на ум: хранить все структуры в одном временном файле на диске, а для ускорения работы потом прикрутить кеширование.
Другой вопрос: есть какие-то "серьёзные" компиляторы (не кросс-компиляторы) для Спектрума с поддержкой указателей, массивов, структур, объектов, "умной линковки" и прочего?