Глобальные переменные не нужны. Практика показывает, что можно написать самоприменимый компилятор Рефала без глобальных переменных. Простой Рефал, плавно мутировавший в Рефал-5λ, не использовал никакие глобальные переменные (LexGen — исключение).
Модульный Рефал использует статические ящики для кэширования создания папок и для красивого вывода на экран компилируемых модулей — периферийная функциональность, без которой можно обойтись.
Полунаписанный новый LexGen, понимающий регулярные выражения, писался в точном соответствии с идиомой рекурсивного спуска — ради этого он использовал глобальную переменную.
В Простом Рефале статические ящики появились для совместимости с Модульным Рефалом. Для Рефала-05 такой цели не ставится, а значит, это избыточная возможность.
Эта задача — подзадача для #1.
Глобальные переменные не нужны. Практика показывает, что можно написать самоприменимый компилятор Рефала без глобальных переменных. Простой Рефал, плавно мутировавший в Рефал-5λ, не использовал никакие глобальные переменные (LexGen — исключение).
Модульный Рефал использует статические ящики для кэширования создания папок и для красивого вывода на экран компилируемых модулей — периферийная функциональность, без которой можно обойтись.
Полунаписанный новый LexGen, понимающий регулярные выражения, писался в точном соответствии с идиомой рекурсивного спуска — ради этого он использовал глобальную переменную.
В Простом Рефале статические ящики появились для совместимости с Модульным Рефалом. Для Рефала-05 такой цели не ставится, а значит, это избыточная возможность.