?STACK
?STACK — фортовское слово Каллисто.
?STACK ( −− ) Сгенерировать ошибку 1, если стек вычерпан (или переполнен).
Выдать ошибку «Исчерпание стека», если он менее, чем пуст и «Исчерпание памяти» при зазоре, меньшем 5(?) элементов.
Ввод слова ?STACK[править]
В режиме NUM последовательно нажмите клавиши K Р-ГРД-Г 1 2 ШГ← С/П 9
Для возврата в режим NUM нажмите синюю клавишу P .
?STACK в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]
?STACK Issue an error message is the stack is out of bounds. This definition may be installation dependent.
Реализация[править]
3373 ;#qSTACK 3374 ; ?STACK ( −− ) Сгенерировать ошибку 1, если стек вычерпан (или переполнен). 3375 LQSTAC: .DB 6 3376 .TEXT "?STACK" 3377 .DW LFLITE 3378 QSTAC: .DW CALL 3379 .DW SZERO,UAT, ONEM, SPAT, LESS, ONE, BRAN,RQERR
Реализация из SP-Forth 4.20:
: ?STACK ( -> ) \ выдать ошибку "исчерпание стека", если он более чем пуст SP@ S0 @ SWAP U< IF S0 @ SP! -4 THROW THEN ;
Советская реализация[править]
Описание и определение слова ?STACK в ядре ФОРТ-ЕС:
?GAP * N-> ВЫДАТЬ ОШИБКУ "ИСЧЕРПАНИЕ ПАМЯТИ", ЕСЛИ 29 ЗАЗОР МЕЖДУ ВЕРШИНАМИ СТЕКА И СЛОВАРЯ МЕНЕЕ N БАЙТОВ ?STACK * -> ВЫДАТЬ ОШИБКУ "ИСЧЕРПАНИЕ СТЕКА", ЕСЛИ 29 ОН БОЛЕЕ, ЧЕМ ПУСТ, И "ИСЧЕРПАНИЕ ПАМЯТИ" ПРИ ЗАЗОРЕ, МЕНЬШЕМ 10 БАЙТОВ Экран номер 32 ( 31.03.86 CONSTANT VARIABLE 2CONSTANT 2VARIABLE : ; ) : ?GAP ( N->) HERE + SP@ SWAP U< ABORT" ИСЧЕРПАНИЕ ПАМЯТИ" ; : ?STACK ( ->) S0 @ SP@ U< ABORT" ИСЧЕРПАНИЕ СТЕКА" 10 ?GAP ;
Определение слова ?STACK в FORTH ИТЭФ:
HEAD 206Q,'?STAC',313Q,QSTAC,$COL ; ?STACK DW SZERO,AT,CFA,SPAT,ULESS,ONE,QERR DW LIT,-200Q,SPAT,ULESS,TWO DW QERR, SEMI
Ссылки[править]
- Исходный текст слова ?STACK в Каллисто Классик 1.0
- См. слова ?COMP, ?CSP, ?EXEC, ?LOADING, ?PAIRS и ?ERROR
- См. также слова CSP, !CSP и ?CSP
- Decisions, Decisions… в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |