WORDS
Перейти к навигации
Перейти к поиску
WORDS (слова, читается «вордс») — стандартное слово Каллисто.
WORDS ( -- ) Слова. Отобразить имена всех слов контекста.
Распечатать на индикаторе имена слов из набора слов CONTEXT.
Ввод слова WORDS
В режиме ЛАТ последовательно нажмите клавиши В↑ 5 × K 1
WORDS в стандарте ANS Forth
15.6.1.2465 WORDS TOOLS ( -- ) Перечисляет имена определений в первом списке слов порядка поиска. Формат отображения зависит от реализации. WORDS может быть реализовано, с использованием слов вывода отображаемых чисел. Следовательно, его использование может разрушать временную область, идентифицированную #>. См.: 3.3.3.6 Другие Временные Области. A.15.6.1.2465 WORDS WORDS - удобство отладки, найденное почти на всех системах Forth. Оно - повсюду упомянуто в текстах Forth.
История
Слово называлось VLIST, пока кто-то англоязычный не подметил, как красиво выглядят последовательности команд FORTH WORDS, EDITOR WORDS и т.п. Интересно, что когда стандарты приняли соглашения ALSO/ONLY, это преимущество пропало.
В Форте FSP88M это слово известно под именем VL
WORDS в предыдущем стандарте Forth-83 (англ.)
WORDS -- M List the word names in the first vocabulary of the currently active search order. WORDS -- ONLY Display the word names in the transient vocabulary, starting with the most recent definition.
VLIST и DLIST в стандарте Forth-79 (англ.)
VLIST List the word names of the CONTEXT vocabulary starting with the most recent definition.
DLIST List the names of the dictionary entries in the CONTEXT vocabulary.
Реализация
Вывод на индикатор можно приостановить или остановить, см. ?BREAK
3890 ;#WORDS 3891 ; WORDS ( −− ) Слова. Отобразить имена всех слов контекста. 3892 LWORDS: .DB 5 3893 .TEXT "WORDS" ; ( −− ) 3894 .DW LINDEX ; Просмотр полного списка операторов, хранящихся в данный момент в контексте 3895 WORDS: .DW CALL, CONT,UAT,UAT 3896 W1: .DW DUP,IDDOT, QBREAK, NLINK,UAT, DUP,ZEQU, ZBRAN,W1, DROP, EXIT
Реализация из SP-Forth 4.20:
\ $Id: spf_words.f,v 1.4 2006/12/04 21:15:59 ygreks Exp $ ( Печать списка слов словаря - WORDS. ОС-независимые определения. Copyright [C] 1992-1999 A.Cherezov ac@forth.org Преобразование из 16-разрядного в 32-разрядный код - 1995-96гг Ревизия - сентябрь 1999 ) USER >OUT USER W-CNT : NLIST ( A -> ) @ >OUT 0! CR W-CNT 0! BEGIN DUP KEY? 0= AND WHILE W-CNT 1+! DUP C@ >OUT @ + 74 > IF CR >OUT 0! THEN DUP ID. DUP C@ >OUT +! 15 >OUT @ 15 MOD - DUP >OUT +! SPACES CDR REPEAT DROP KEY? IF KEY DROP THEN CR CR ." Words: " BASE @ DECIMAL W-CNT @ U. BASE ! CR ; : WORDS ( -- ) \ 94 TOOLS \ Список имен определений в первом списке слов порядка поиска. Формат зависит \ от реализации. \ WORDS может быть реализован с использованием слов форматного преобразования \ чисел. Соответственно, он может испортить перемещаемую область, \ идентифицируемую #>. CONTEXT @ NLIST ;
Советская реализация
Юрий Семёнов приводит следующее определение слова WORDS (стр. 106):
: WORDS CONTEXT @ @ ( запись в стек адреса начала просмотра словаря) BEGIN ↵ ( начало бесконечного цикла просмотра) 3 FOR ( информация о трёх операторах помеща- ется в одну строку) ↑ ID. ( печать имени очередного оператора) 13 OVER C@ '37 AND ( вычисление длины имени очередного оператора) - SPACES ( организация табуляции операторов словаря) N>BODY ↑ 6 I.R SPACE ( печать PFA оператора) '!' EMIT SPACE ( печать "!") LFA @ ( запись в стек значения константы связи) ↑ 0= ( конец словаря?) IF LEAVE ( если да, выход из цикла) THEN NEXT ?DUP 0= ( это действительно конец словаря?) UNTIL ;
Описание и определение слова WORDS в ядре ФОРТ-ЕС:
WORDS + -> РАСПЕЧАТАТЬ НА ТЕРМИНАЛЕ ИМЕНА СЛОВ 44 ИЗ СПИСКА "CONTEXT" Экран номер 44 ( 31.03.86 WORDS ) : WORDS ( -> ) ." СПИСОК " CONTEXT @ DUP .VOC DUP (VOC) ." ВСЕГО СЛОВ - " . ." СЛЕДУЮЩИЙ СПИСОК - " ?DUP IF 2+ .VOC THEN CR @ BEGIN DUP DUP IF @ [ &DWORD ] LITERAL <> THEN WHILE DUP С@ [ &SFLAG ] LITERAL AND 0= IF DUP ID. SPACE THEN N>LINK @ REPEAT DROP ;
В FORTH ИТЭФ слово WORDS имело имя VLIST
Вот его определение:
HEAD 205Q,'VLIS',324Q,VLIST,$COL ; VLIST DW CONT,AT,AT VL0: DW CR,THREE,ZERO,XDO VL1: DW DUBL,IDDOT,LIT,15Q,OVER,CAT,LIT,37Q,$AND,SUB DW SPACS,PFA,DUBL,LIT,6,UDOTR,SPACE,LIT,41Q DW EMIT,SPACE,LFA,AT,DUBL,ZEQU,ZBRAN,VL2-$ DW LEAVE VL2: DW XLOOP,VL1-$,DDUP,ZEQU,ZBRAN,VL0-$,SEMI
Ссылки
- Исходный текст слова WORDS в Каллисто Классик 1.0
- Слово WORDS и комментарий к нему в стандарте ANS Forth (англ.)
- Слово WORDS и комментарий к нему в черновике Forth 200x (англ.)
- ОСНОВЫ ФОРТА в книге Л.Броуди «Начальный курс программирования на языке Форт»
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |