TASK
TASK (читается «таск») — фортовское слово Каллисто.
TASK ( −− ) Последнее слово ядра Каллисто.
Последнее встроенное слово в словаре.
Ввод слова TASK[править]
В режиме ЛАТ последовательно нажмите четыре клавиши 2 ШГ← 1 9
История[править]
Слово TASK появилось в 1970 году, когда Чак Мур перенёс Форт на ассемблер Univac 1108 для программирования системы ввода заказов по сети выделенных линий в Mohasco Industries, Inc (Amsterdam NY, англ.).
Слово TASK определяло задачу во время загрузки и ACTIVATE запускало её, когда требовалось. Схожую задачу в Каллисто выполняет переменная APP.
В Форте слово TASK часто использовалось в паре с оператором FORGET — команда FORGET TASK выбрасывала из памяти все слова, кроме стандартных, приводя его в начальное состояние. Если сразу после FORGET TASK создать слово TASK — например командой
: TASK ;
система вернётся примерно в то положение, в котором была при старте и приложения можно компилировать заново.
В стандартной поставке Каллисто слово TASK является последним в словаре, но оператор FORGET пришлось исключить. При необходимости программист может определить собственный оператор FORGET — но после FORGET TASK ему придётся слово FORGET компилировать заново.
Действие чуть суровее, чем FORGET TASK , выполняет слово COLD.
TASK в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]
TASK A no-operation word which can mark the boundary between applications. By forgetting TASK and re-compiling, an application can be discarded in its entirety.
Реализация[править]
В Каллисто 1.0 слово TASK находится в памяти данных, куда его переносит из своего поля данных слово COLD:
207 JNOP: KGOTO9 ; Обработчик NOP … 472 ;#TASK 473 ; TASK ( −− ) Последнее слово ядра Каллисто. 474 ; В Форте слово TASK чаще всего используется оператором FORGET для сброса словаря в начальное состояние. 475 ;LTASK: 476 .DB 4 ; 11161 = 2b99 = LTASK 477 .TEXT "TASK" ; 11162: 478 .DB 2bH,87H ; 11166: 11143 rrDict, ссылка на LFORTH в единой адресации 479 .DW JNOP ; 11168 = TASK: (xt)
Реализация из SP-Forth 4.20:
: TASK ( xt1 -- xt2 ) CELL EXTERN HERE SWAP ['] _WNDPROC-CODE COMPILE, , ;
Советская реализация[править]
Определение слова TASK в FORTH ИТЭФ:
HEAD 204Q,'TAS',313Q,TASK,$COL ; TASK DW SEMI
Ссылки[править]
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |