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



             

Приложение А: Обзор Форта (для новичков)


ПРИЛОЖЕНИЕ А

О Б З О Р Ф О Р Т А ~~~~~~~~~~~~~~~~~~~~~ ( Д Л Я Н О В И Ч К О В ) ~~~~~~~~~~~~~~~~~~~~~~~~~~~

----------------------------------------------------------------

СЛОВАРЬ.

На Форте (FORTH) говорят словами (и числами), которые отделяются друг от друга пробелами:

ЛАДОНЬ ОТКРЫТЬ РУКА ОПУСТИТЬ ЛАДОНЬ ЗАКРЫТЬ РУКА ПОДНЯТЬ

Подобные команды могут быть набраны прямо с клавиатуры или вначале набраны редактором на устройствах массовой памяти (в файлах на диске), а потом загружены ("LOAD"). Все слова, уже имеющиеся в системе или определенные пользователем, существуют в "словаре", связном списке. "Определяющие слова" используются для добавления новых имен в словарь. Одним из них является слово : (произносится "двоеточие"), которое используется для определения нового слова в терминах ранее определенных слов. Вот как можно было бы определить новое слово по имени ПОДЫМАТЬ:

: ПОДЫМАТЬ ЛАДОНЬ ОТКРЫТЬ РУКА ОПУСТИТЬ ЛАДОНЬ ЗАКРЫТЬ РУКА ПОДНЯТЬ ;

Слово ; заканчивает определение. Новое слово ПОДЫМАТЬ может теперь быть использовано вместо длинной последовательности слов, составляющих определение. Слова Форта могут быть вложены друг в друга неограниченно. Написание задачи на Форте состоит из построения все более мощных определений, таких, как приведенное, в терминах тех, что были определены ранее. Другим определяющим словом является CODE ("код"), которое используется вместо двоеточия для определения команды в терминах машинных инструкций используемого процессора. Слова, определенные с помощью CODE с точки зрения пользователя неотличимы от тех, что определены через двоеточие. Определения через CODE если и нужны, то только в самых критичных ко времени исполнения местах программы. - 280 -

СТРУКТУРЫ ДАННЫХ.

Еще одно определяющее слово - CONSTANT (конатанта) - используется так:

17 CONSTANT СЕМНАДЦАТЬ

Новое слово СЕМНАДЦАТЬ может теперь быть использовано вместо настоящего числа 17. Определяющее слово VARIABLE (переменная) создает место для хранения временных данных.


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