Редактирование:
WORDS
(раздел)
Перейти к навигации
Перейти к поиску
Внимание:
Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы
войдёте
или
создадите учётную запись
, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.
Анти-спам проверка.
Не
заполняйте это!
== Реализация == Вывод на [[индикатор]] можно приостановить или остановить, см. [[?BREAK]] <pre> 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 </pre> Реализация из SP-Forth 4.20: <pre> \ $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 ; </pre> === Советская реализация === Юрий Семёнов приводит следующее определение слова 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 в ядре ФОРТ-ЕС: <PRE> 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 ; </PRE> В FORTH ИТЭФ слово WORDS имело имя VLIST Вот его определение: <PRE> 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 </PRE>
Описание изменений:
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см.
Pmkwiki:Авторские права
).
НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!
В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:
Отменить
Справка по редактированию
(в новом окне)
Навигация
Персональные инструменты
Вы не представились системе
Обсуждение
Вклад
Создать учётную запись
Войти
Пространства имён
Статья
Обсуждение
русский
Просмотры
Читать
Править
История
Ещё
Поиск
Навигация
Заглавная страница
Свежие правки
Случайная страница
Справка по MediaWiki
Инструменты
Ссылки сюда
Связанные правки
Служебные страницы
Сведения о странице