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


         

что рекомендуется, ПОКАЗАТЬ может устанавливать


Мы обсудим этот вопрос в совете "избегайте упреждающих выборок" позже в этой главе.
Или, что рекомендуется, ПОКАЗАТЬ может устанавливать "исполняемую переменную", которую ИНВЕНТАРЬ затем будет вызывать. (Мы обсудим векторизованное исполнение в седьмой главе.)
------------------------------------------------------------ СОВЕТ Пусть текст идет после имен. ------------------------------------------------------------
Если Форт-интерпретатор обнаруживает строку текста, не являющуюся ни числом, ни предварительно определенным словом, это вызовет аварийный останов с выдачей сообщения об ошибке. По этой причине неопределенная строка должна быть предваряема заранее определенным словом.
Примером является ." (точка-кавычка), предваряющая текст, который должен быть впоследствии напечатан. Другой пример - CREATE (так же, как и все определяющие слова), предваряющее имя, которое на данный момент еще не определено.
Это правило также применимо к определенным словам, на которые Вам нужно сослаться, но не исполнить их. Пример - слово FORGET:
FORGET TASK
Синтаксически FORGET должно стоять перед TASK, так что TASK не исполняется.
------------------------------------------------------------ СОВЕТ Пусть определения поглощают свои аргументы. ------------------------------------------------------------
Это синтаксическое правило больше относится к соглашению о хорошем стиле программирования на Форте, чем к требованиям самого Форта.
Предположим, Вы пишете слово ЗАПУСТИТЬ, которое требует номер пусковой установки и стреляет нужной ракетой. В целом Вы хотели бы, чтобы оно выглядело как-то вроде:
: ЗАПУСТИТЬ ( ракета#) ЗАРЯДИТЬ ЦЕЛИТЬ СТРЕЛЯТЬ ;
Каждое из трех внутренних определений потребует один и тот же аргумент - номер установки. Вам где-то понадобится поставить два слова DUP. Вопрос только: где? Если Вы введете их внутрь ЗАРЯДИТЬ и ЦЕЛИТЬ, то сможете не употреблять их внутри ЗАПУСТИТЬ, как в вышеприведенном определении. Если Вы их извлечете из ЗАРЯДИТЬ и ЦЕЛИТЬ, Вам нужно будет определить:

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