Язык программирования Форт



         

Глава 7. Операторы сравнения и ветвления - часть 10


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

Сначала мы познакомимся с тем, как можно выйти досрочно из исполнения слова с помощью оператора EXIT. Пусть вы определили : ADD + EXIT . ; : SUM 3 4 ADD 5 6 ADD ." Суммы" ;

Если вы запустите слово SUM, а потом посмотрите, что находится в стеке, то увидите, что, хотя обе пары чисел были введены и просуммированы, ни один из результатов не выведен на экран, по тому что операция ADD была окончена раньше, чем встретилось слово . (напечатать). А сообщение "Are the sums" (суммы) напечаталось. Дело в том, что, когда завершилось исполнение слова ADD, программа SUM еще не завершилась и управление было передано слову SUM. Теперь попробуйте тот же пример, заменив в нем EXIT на QUIT. Вы не увидите завершающего программу сообщения, но если заглянете в стек, то увидите там только первую сумму. Слово QUIT не только прекратило операцию ADD, оно завершило исполнение программы передав управление клавиатуре. Если слово QUIT сохраняет содержимое стека, то слово AUORT делает очистку стека.

Из данного примера не видно явно никакой пользы от новых слов EXIT, QUIT и ABORT. Зачем же нужны слова, которые только прекращают действие программы или слова до их завершения? Ответ состоит в том, что эти слова используются обычно в конструкциях IF...THEN, о чем мы вскоре расскажем. Назовем лишь два самостоятельных употребления этих слов. Во-первых, ни QUIT, ни ABORT не оставляют на экране сообщения "ok", если они стоят в конце программы. Вспомним пример программы WT, в которой числа вводились после того, как вы печатали WT и , и на экране получалось что-то вроде 223 WT ok 16 WT ok 59 WT ok

Можно сделать ввод более красивым, добавив в конце определения слова WT фразу SPACЕ QUIT.


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