DROP
DROP (сбросить, читается «дроп») — стандартное слово Каллисто. Снять со стека верхний элемент.
DROP ( x −− ) Убрать. Удалить верхний элемент стека.
Удаляет число x из стека.
Ввод слова DROP[править]
В режиме ЛАТ последовательно нажмите четыре клавиши K × 5 6
DROP и FDROP в стандарте ANS Forth[править]
6.1.1260 DROP CORE ( x -- ) Удаляет x из стека. 12.6.1.1500 FDROP "f-drop" FLOATING ( F: r -- ) or ( r -- ) Удаляет r со стека с плавающей точкой.
История[править]
В Форте слово DROP — одно из самых древних и устоявшихся. Входит под именем DROP во все стандарты Форта, включая fig-Форт и Форт-79.
Впервые оно появилось в 1964 году под именем ; в программе CURVE, написанной Чак Муром на Алголе для Burroughs B5500 (Национальная ускорительная лаборатория SLAC, Стэнфордский университет).
В Форте FSP88M слово DROP было известно под именем DR
DROP в предыдущем стандарте Forth-83 (англ.)[править]
DROP 16b -- 79 16b is removed from the stack.
DROP в стандарте Forth-79 (англ.)[править]
DROP n -- 233 Drop the top number from the stack.
DROP в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]
DROP n --- L0 Drop the number from the stack.
Реализация[править]
В Каллисто стек содержит десятичные числа — достаточно вместительные, чтобы популярные в ранних версиях Форта числа двойной длины не использовались. Когда их приходится использовать для совместимости с Фортом, слово DROP осуществляет простейший переход от двойной точности к обычной — действие, обратное действию S>D.
Более точная реализация D>S должна проверять верхний элемент на отрицательность (32768 и больше), а также включать умножение на 65536.
1954 ;#DROP 1955 ; DROP ( x −− ) Убрать. Удалить верхний элемент стека. 1956 LDROP: .DB 4 1957 .TEXT "DROP" ; ( x −− ) 1958 .DW LDDROP 1959 DROP: .DW JDROP ; JDROP: 1 RM3 + M3 KGOTO9 … 2052 JDROP: 1 ; Да, это обработчик DROP 2053 NDROP: RM3 + M3 ; А сюда сваливается 2DROP 2054 KGOTO9
Реализации из SP-Forth 4.20:
0 VALUE 'DROP_V … : 'DROP 'DROP_V ; … : 'DROP \ CR ." NEW 'DROP " CURFILE @ ASCIIZ> TYPE SPACE CURSTR @ . S" DROP" TC-FINDOUT >VIRT TC-LIT, ; IMMEDIATE
' DROP >VIRT CONSTANT 'DROP
CODE DROP ( x -- ) \ 94 \ Убрать x со стека. MOV EAX, [EBP] LEA EBP, 4 [EBP] RET END-CODE ' DROP TO 'DROP_V
CODE FDROP \ * FSTP ST(0) RET END-CODE
Советская реализация[править]
Слово DROP в ФОРТ-ЕС было примитивом. Вот его описание и определение:
DROP W-> УБРАТЬ СО СТЕКА ВЕРХНЕЕ ЗНАЧЕНИЕ 9 Экран номер 9 ( 31.03.86 DUP ?DUP DROP SWAP OVER >R R> R@ RDROP ROT ) CODE DROP ( W-> ) RSTACK RTWO AR, RNEXT BR, END-CODE
В FORTH ИТЭФ слово DROP также было примитивом, вот его определение:
HEAD 204Q,'DRO',320Q,DROP ; DROP DRP: ADD SP, 2 NEXT
Ссылки[править]
- Исходный текст слова DROP в Каллисто Классик 1.0
- См. слова 2DROP, ↑, ↔, OVER, ROT
- Слова DROP и FDROP (f-drop) в стандарте ANS Forth (англ.)
- Слова DROP и FDROP (f-drop) в черновике Forth 200x (англ.)
- ВЫПОЛНЕНИЕ АРИФМЕТИЧЕСКИХ ОПЕРАЦИЙ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- How to Get Results в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |