Способ мышления-Форт


         

Если бы Форт был спроектирован


Если бы Форт был спроектирован каким-нибудь комитетом, мы бы его так не любили.
ЕЩЕ СОВЕТЫ ПО ЧИТАБЕЛЬНОСТИ
Вот несколько заключительных предложений для повышения удобочитаемости Вашего кода. (Определения приводятся в приложении В).
Всегда окупающей себя в большинстве задач константой является BL (код ASCII для "пробела").
Слово ASCII применяется, в основном, внутри определений через двоеточие для того, чтобы освобождать нас от необходимости знания численного значения символов ASCII. К примеру, вместо того, чтобы писать
: ( 41 WORD DROP ; IMMEDIATE
помня, что 41 - это код ASCII для закрывающей скобки, можно написать
: ( ASCII ) WORD DROP ; IMMEDIATE
Сделать работу с булевскими значениями более наглядной могут слова TRUE и FALSE (ИСТИНА и ЛОЖЬ). Эти добавления позволят Вам писать выражения типа
TRUE 'МАРКА? !
для установки флага, или
FALSE 'МАРКА? !
для его очистки.
(Когда-то я использовал T и F, но они мне нужны так редко, что теперь я осмотрительно придерживаюсь соглашения против сокращений.)
Частью Вашей задачи (не обязательно частью Вашей Форт-системы) может стать следующий шаг в развитии этой идеи:
: ON ( a) TRUE SWAP ! ; : OFF ( a) FALSE SWAP ! ;
Эти слова позволят Вам писать:
'МАРКА? ON
или
'МАРКА? OFF
Эти определения встречаются и под другими именами, типа SET и RESET (УСТАНОВИТЬ и СБРОСИТЬ), хотя обычно слова с такими именами используют маски для манипуляций отдельными битами.
Слово WITHIN (МЕЖДУ) также используется часто. Оно определяет, находится ли данное значение в интервале между двумя другими числами. Синтаксис его таков:
n lo hi WITHIN
Число "n" подлежит проверке, а "lo" и "hi" представляют диапазон. Слово WITHIN возвращает истину (TRUE), если "n" `больше или равно` "lo" и `меньше` "hi". Такое использование верхнего ограничителя (его исключение) соответствует аналогичному синтаксису циклов DO LOOP.
Мур рекомендует использовать слово UNDER+ (ПОД+).

Содержание  Назад  Вперед