Mazdaywik / Refal-05

Очень минималистичный компилятор Рефала
https://mazdaywik.github.io/Refal-05/
Other
4 stars 3 forks source link

Удалить статические ящики #5

Closed Mazdaywik closed 6 years ago

Mazdaywik commented 6 years ago

Эта задача — подзадача для #1.

Глобальные переменные не нужны. Практика показывает, что можно написать самоприменимый компилятор Рефала без глобальных переменных. Простой Рефал, плавно мутировавший в Рефал-5λ, не использовал никакие глобальные переменные (LexGen — исключение).

Модульный Рефал использует статические ящики для кэширования создания папок и для красивого вывода на экран компилируемых модулей — периферийная функциональность, без которой можно обойтись.

Полунаписанный новый LexGen, понимающий регулярные выражения, писался в точном соответствии с идиомой рекурсивного спуска — ради этого он использовал глобальную переменную.

В Простом Рефале статические ящики появились для совместимости с Модульным Рефалом. Для Рефала-05 такой цели не ставится, а значит, это избыточная возможность.