Язык Форт и его реализации



             

Введение новых слов - часть 3


> 5 4 S2 . 41 ОК

Слова с признаком немедленного исполнения (другим примером такого слова помимо точки с запятой является открывающая круглая скобка — начало комментария) выполняются по-разному в зависимости от состояния текстового интерпретатора. Некоторые из них даже используются только в одном из этих состояний. Поэтому на диаграмме для таких слов будем отмечать эти случаи, специально указывая состояние компиляции

( ---> ---> (компиляция)

Слово ( в обоих состояниях действует одинаково: пропускает все следующие вводимые литеры до закрывающей круглой скобки включительно или до конца введенной строки, если закрывающая скобка отсутствует.

Слово ; допустимо применять только в состоянии компиляции: ; --> (компиляция). Оно завершает построение нового определения и переключает текстовый интерпретатор в состояние исполнения.

Слово IMMEDIATE (немедленный) --> устанавливает признак немедленного исполнения для последнего определенного слова. (Подробнее использование этого признака рассматривается в п.1.7.)

Введенные слова можно исключить из словаря с помощью слова FORGET (забыть) -->, которое выбирает из входной строки следующее слово и исключает его из словаря вместе со всеми словами, определенными позже.

Разберем следующий протокол диалога:

> 2 2 * . 4 ОК > : 2 3 ; ОК > 2 2 * . 9 ОК > FORGET 2 ОК > 2 2 * . 4 ОК

Сначала программист вычисляет произведение от умножения 2 на 2 и получает ответ 4. Введя затем определение слова 2 как числа 3, он в дальнейшем получает уже другой ответ. Исключив это определение слова 2 через FORGET, он возвращается к прежней семантике слова 2.

В процессе работы текстового интерпретатора программист может переключать его из состояния компиляции в состояние исполнения и обратно с помощью слов [ (открывающая квадратная скобка) --> и ] (закрывающая квадратная скобка) -->. Слово [ имеет признак немедленного исполнения и переключает интерпретатор в состояние исполнения, а слово ] переключает его в состояние компиляции.


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