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


Глава 4. Детализированная разработка/решение задачи - часть 11


Вы можете переопределить + и получать одно из чисел из входного потока:

3 + 4

написав:

: + BL WORD NUMBER DROP + ;

(где WORD - слово из стандарта Форт-79/83, возвращающее адрес; NUMBER же дает число двойной длины - как это указано в списке слов нерегламентированного употребления стандарта-83).

Отлично. Однако Вы не можете использовать это определение внутри других определений через двоеточие или передавать ему аргументы, теряя таким образом одно из основных преимуществ Форта.

Зачастую слова вида "существительное" передают свои адреса (или другой тип указателя) через стек словам типа "глагол". Фортоподобный синтаксис фразы

"существительное" "глагол"

в общем случае реализовать легче всего вследствие использования стека.

В неоторых ситуациях такой порядок слов звучит неестественно. К примеру, предположим, у нас есть файл по имени ИНВЕНТАРЬ. Мы, в частности, можем ПОКАЗАТЬ его, форматируя информацию симпатичными колонками. Если ИНВЕНТАРЬ передает указатель слову ПОКАЗАТЬ, которое с ним работает, синтаксис становится таким:

ИНВЕНТАРЬ ПОКАЗАТЬ

Если Ваше задание предусматривает английский (русский) порядок слов, в Форте имеются способы достижения и его. Однако при этом обычно увеличивается уровень сложности. Иногда лучшее, что можно сделать - это использовать более подходящие имена. Как насчет

ИНВЕНТАРНЫЙ СПИСОК

(Мы сделали "указатель" прилагательным, а "исполнителя" - глаголом.)

Если же задание настаивает на синтаксисе

ПОКАЗАТЬ ИНВЕНТАРЬ

то мы имеем несколько возможностей. ПОКАЗАТЬ могло бы устанавливать флаг и ИНВЕНТАРЬ при этом мог бы работать в соответствии с этим флагом. У такого подхода есть определенные недостатки, в особенности тот, что ИНВЕНТАРЬ должен быть достаточно "умен" для того, чтобы знать все возможные действия, которые могут быть с ним произведены. (Мы будем рассматривать эти проблемы в главах 7 и 8.)

Или ПОКАЗАТЬ могло бы выбирать следующее слово из входного потока.


Начало  Назад  Вперед



Книжный магазин