Язык программирования Форт



Приложение Д. Ответы к упражнениям - часть 29


В противном случае каждый из них связан только с Фортом. ) ( 6. ) В-МЩС DEFINITIONS : A-LAST ." Another В-VOC definition " ; ( Выберите одно из двух описании A-VOC и В-VOC. )

Блок 136 [136 :0] ( Глава 14. Упрахиения 4. 01 из 03 ) ( 2. ) : HELP CONTEXT @ [COMPILE] HELPS FIND ?DUP IF [ FIND HELPS ] LITERAL OVER U< IF EXECUTE ELSE DROP ." not in HELP list" THEN ELSE ." not found. " THEN CONTEXT ! ;

Блок 137 [137 :0] ( Глава 14. Упрахкения 4. 02 из 03 ) ( 2. ) VOCABULARY HELPS HELPS DEFINITIONS BLK @ 2+ CONSTANT BASEBLK ( указание на первый блок) 32 CONSTANT #/BLK ( число статей в блоке ) 32 CONSTANT LENGTH ( длина статьи ) : HELPER ( n -- ) CREATE , ( Создает индекс статей HELP) DOES> DUP #/BLK / BASEBLK + BLOCK SWAP LENGTH * + LENGTH -TRAILING TYPE CR ; 0 HELPER DUP 1 HELPER DROP 2 HELPER SWAP 3 HELPER OVER 4 HELPER ROT 5 HELPER - 6 HELPER + 7 HELPER * 8 HELPER / --> ( Каждое из слов должно соответствовать статье в блоке данных. )

Блок 138 [138 :0] ( Глава 14. Упражнения 4. 03 из 03 В след. блоке данные) ( 2. продолж. ) FORTH DEFINITIONS : HELP [COMPILE] HELPS FIND ?DUP IF [ FIND HELPS ] LITERAL OVER U< IF EXECUTE ELSE DROP ."Not in HELP list." THEN ELSE ." not found" THEN [COMPILE] FORTH ; ( Используйте ['] HELPS вместо [ FIND HELPS ] LITERAL в Форт-83. [COMPILE] необходимо только в Форт, где контекстные словари являются словами немедленного исполнения. ) ( Используйте редактор для запоминания описаний; следующий блок может служить примером. Эта версия HELP воспримет описания из любого числа блоков начиная с BASEBLK. )

Блок 139 [139 :0]

= stack ( n -- n n ) = stack ( n1 n2 -- n1 ) = stack ( n1 n2 -- n2 n1 ) = stack ( n1 n2 -- n1 n2 n1 ) = stack ( n1 n2 n3 -- n2 n3 n1 ) = substract ( n1 n2 -- n3 ) = add ( n1 n2 -- n3 ) = multiply ( n1 n2 -- n3 ) = divide ( n1 n2 -- n3 )

Блок 140 [140 :0]

( Глава 15. Упражнения 1. 01 из 02 ) ( 1.) : ?COMPILE ( CFA -- ) STATE @ IF , ELSE EXECUTE THEN ; ( 2. ) : 83COMPILE ( cfa f --) DUP 1 = IF DROP EXECUTE EXIT THEN STATE @ AND 0= IF EXECUTE ELSE , THEN ; ( В Форт-83 FIND производит поиск в словаре до компиляции или исполнения, т.е.


Содержание  Назад  Вперед