Ответ 1
Если это самый дорогой исходный код, о котором вы больше всего беспокоитесь, вы можете ограничить набор символов на 48 Chuck Moore, выбранный для colorForth, и использовать его кодировку Shannon схема, которая в среднем составляет 5,2 бита на символ. Он также утверждает, что источник colorForth только в два раза превышает размер объектного кода. Кстати, кажется, что набор символов всегда немного отличается от arrayForth (см. стр. 47 Руководства пользователя - различный порядок цифр, апостроф вместо двоеточия и т.д.).
Использование кодировки Шеннона не имеет ничего общего с цветными словами. Если вы хотите пройти весь путь и сохранить предварительно обработанные слова, как в colorForth, вы можете использовать его схему здесь.
Он не дает много подробностей, но для etherForth он отказался от кодировки Шеннона и пошел с простой 6-битной кодировкой для того же набор символов с 11xxxx, дополнительно указывающий 16-битный тег, который он использует для цветов и токенов, включая инструкции F18 и несколько ассемблерных примитивов (начало, конец, затем, для). Это действительно очень классная схема (и особенно на 18-битном F18 с комнатой для 3 на слово). Чрезвычайно простой и довольно компактный.
Во всяком случае, есть некоторые идеи. Не совсем прямой ответ на ваш вопрос сжатия, но некоторые способы хранения источника Forth в хорошо сжатой форме. Получайте удовольствие!