ABORT: различия между версиями
AtH (обсуждение | вклад) |
AtH (обсуждение | вклад) |
||
Строка 59: | Строка 59: | ||
Реализация из SP-Forth 4.20: | Реализация из SP-Forth 4.20: | ||
<pre> | <pre> | ||
0 VALUE THROW-CODE | |||
… | |||
: ABORT \ 94 EXCEPTION EXT | : ABORT \ 94 EXCEPTION EXT | ||
\ Расширить сематику CORE ABORT чтобы было: | \ Расширить сематику CORE ABORT чтобы было: |
Версия от 18:35, 13 ноября 2017
ABORT (выброс, читается «аборт») — стандартное слово Каллисто.
ABORT ( −− ) Очищает стек, устанавливает набор слов FORTH и молча делает QUIT.
Очищает стеки возвратов и данных, устанавливает состояние исполнения. Делает набор слов FORTH контекстным, исполняет QUIT для передачи управления на пульт Каллисто (BLK=0).
Слово ABORT используется при инициализации среды, обработке всевозможных ошибок и выходе системы из нештатных ситуаций.
Ввод слова ABORT
В режиме ЛАТ последовательно нажмите клавиши ШГ← В/О 5 × 2
ABORT в стандарте ANS Forth
6.1.0670 ABORT CORE ( i*x -- ) ( R: j*x -- ) Освобождает стек данных и выполняет функцию QUIT, которая включает освобождение стека возвратов, без отображения сообщения. См.: 9.6.2.0670 ABORT.
История
Слово ABORT появилось в 1958 году в самой первой версии интерпретатора Форта, написанного Чак Муром на Фортране для IBM EDPM 704 для САО. Тогда оно ещё не называлось ABORT, так в то время команды Форта кодировались числами.
Обработка ошибок заключалась в прекращении исполнения. Затем, как и позже, ABORT спрашивал пользователя, что делать. Поскольку вводимые перфокарты перечислялись по мере ввода, вы знали, где допущена ошибка.
Хотя с 1983 года стандарт Форта запрещает это, в некоторых системах ABORT распечатывал имя интерпретатора.
ABORT в предыдущем стандарте Forth-83 (англ.)
ABORT 79 Clears the data stack and performs the function of QUIT . No message is displayed.
ABORT в стандарте Forth-79 (англ.)
ABORT 101 Clear the data and return stacks, setting execution mode. Return control to the terminal.
ABORT в fig-FORTH Release 1 glossary, май 1979 (англ.)
ABORT L0 Clear the stacks and enter the execution state. Return control to the operators terminal, printing a message appropriate to the installation.
Реализация
3442 ;#ABORT 3443 ; ABORT ( −− ) Очистить стек, установив набор слов FORTH, и молча сделать QUIT. 3444 ; Прервать исполнение, сделать набор FORTH контекстным, исполнить QUIT 3445 ; Используется при инициализации системы, обработке всевозможных ошибок 3446 ; и выходе системы из нештатных ситуаций. 3447 LABORT: .DB 5 3448 .TEXT "ABORT" 3449 .DW LQUIT 3450 ABORT: .DW CALL 3451 RABORT: .DW SPSTO, RAD, DEC 3452 .DB 2bH,8fH ; 11151 FORTH (токен) 3453 .DW DEFIN, BRAN,RQUIT
Реализация из SP-Forth 4.20:
0 VALUE THROW-CODE … : ABORT \ 94 EXCEPTION EXT \ Расширить сематику CORE ABORT чтобы было: ( i*x -- ) ( R: j*x -- ) \ Выполнить функцию -1 THROW -1 THROW ;
Советская реализация
Юрий Семёнов приводит следующее определение слова ABORT (стр. 56):
: ABORT !SP ( установка указателя стека параметров в началь- ное состояние) DECIMAL ( установка десятичной системы счисления) ↵ ." FORTH-PC IS HERE" ( сообщение о готовности) FORTH DEFINITIONS ( словарь Форт сделан контекстным) QUIT ; ( вход в QUIT-петлю )
Слово ABORT в ядре ФОРТ-ЕС называется QUIT
При этом стандартное слово QUIT переименовано в ФОРТ-СИСТЕМА
Судя по первой строчке экрана № 28 и индексу, это изменение внесли в последнюю минуту перед публикацией — что, возможно, сделало опубликованный исходный текст некомпилируемым из-за отсутствия в нём слова ABORT
Вот их описание и определение QUIT из ФОРТ-ЕС, которое соответствует слову ABORT из Каллисто:
ABORT СБРОСИТЬ СТЕК И УЙТИ ПО "QUIT" 28 QUIT СБРОСИТЬ СТЕК ВОЗВРАТОВ, ПЕРЕЙТИ В РЕЖИМ 28 ИСПОЛНЕНИЯ И ПРОДОЛЖИТЬ ИНТЕРПРЕТАЦИЮ Экран номер 28 ( 31.03.86 LIT" COUNT ," " ". (."/ ." C" ( ,( QUIT ABORT ) : QUIT ( ->) [COMPILE] [ S0 @ SP! R0 @ RP! ФОРТ-СИСТЕМА ;
Определение слова ABORT в FORTH ИТЭФ:
HEAD 205Q,'ABOR',324Q,ABORT,$COL ; ABORT DW SPSTO,DEC,CR,PDOTQ DB 17,'FORTH-PC IS HERE ' DW FORTH,DEFIN,QUIT
Ссылки
- Исходный текст слова ABORT в Каллисто Классик 1.0
- См. слова QUIT, WARM, COLD и BYE
- Слово ABORT в стандарте ANS Forth (англ.)
- Слово ABORT в черновике Forth 200x (англ.)
- ФУНКЦИОНИРОВАНИЕ ФОРТ-СИСТЕМЫ в книге Л.Броуди «Начальный курс программирования на языке Форт»
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |