Как выйти из среды Forth?

Если я нахожусь в среде Forth, как мне выйти и как мне запрограммировать слово для выхода?


person Veltas    schedule 26.11.2020    source источник


Ответы (1)


Есть два способа «оставить» Форт-код, в зависимости от того, что вам нужно сделать.

BYE

Стандарт Forth определяет слово BYE для выхода из самой среды Forth.

BYE ( -- )
Вернуть управление операционной системе хоста, если таковая имеется.

Это слово получает много творческих интерпретаций, когда ваш Форт не работает как программа в операционной системе. Например, в некоторых системах, где Forth является операционной системой, вместо этого BYE вызывает перезагрузку системы, позволяя загрузить другую ОС.

BYE является частью набора слов Programming-Tools Extensions.

QUIT

В наборе основных слов есть слово QUIT, но оно не покидает окружающую среду. Вместо этого он прекращает выполнение слова и возвращает вас обратно к интерпретатору. Вот почему это называется 'ВЫЙТИ', это уход в другом смысле.

QUIT ( -- ) ( R: i*x -- )
Очистить стек возврата, сохранить ноль в SOURCE-ID, если он присутствует, сделать пользовательское устройство ввода источник ввода и войдите в состояние интерпретации. Не отображать сообщение. Повторите следующее:

  • Принять строку из источника ввода во входной буфер, установить >IN на ноль и интерпретировать.
  • Отображать определяемое реализацией системное приглашение, если в состоянии интерпретации вся обработка завершена и нет неоднозначных условий.

Вместо определения QUIT как нечто вроде этого слова возвращает вас к интерпретатору, вместо этого QUIT действительно определяется как сам интерпретатор в стандарте Forth. В факторизованной реализации Forth это имеет смысл: слово, которое возвращает вас обратно в интерпретатор, и сам интерпретатор могут быть одним и тем же словом, они оба могут просто очистить стек возврата и начать интерпретацию.

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

person Veltas    schedule 26.11.2020