ID.

Материал из ПМК вики
Перейти к навигации Перейти к поиску

ID. (читается «ай-ди-точка») — встроенное слово Каллисто.

ID.            ( a −− )                             Напечатать имя слова (по NFA) и дать пробел.

Печатает имя слова, записанное в соответствии с требованиями поля имени.

Ввод слова ID.[править]

В режиме ЛАТ последовательно нажмите четыре клавиши  7   K     P   /−/ 

Эти нажатия оставляют клавиатуру в режиме NUM.

История[править]

В Каллисто слово определяется адресом его поля имени. Слово ID. использовало это же соглашение в Форте задолго до разработки Каллисто.

В некоторых старых Фортах слово ID. называлось .ID или .NAME

ID. в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]

ID.           addr ---
       Print a definition's name from its name field address.

Реализация[править]

3302 ;#IDd
3303 ; ID.              ( a −− )                             Напечатать имя слова (по NFA) и дать пробел.
3304 ; Вывести имя слова, записанное в соответствии с требованиями поля имени.
3305 LIDDOT:         .DB     3
3306                 .TEXT   "ID."                                   ; ( nfa −− )
3307                 .DW     LERROR
3308 IDDOT:          .DW CALL, COUNT, BL,MOD, TYPE, BRAN,RSPACE      ; BL == 32

Реализация из SP-Forth 4.20:

: ID. ( NFA[E] -> )
  COUNT TYPE
;

Советская реализация[править]

Cледующее описание оператора ID. приведено у Юрия Семёнова (стр. 106) и Баранова-Ноздрунова (стр. 87):

 : ID. ( NFA ---> )
         COUNT             ( в стеке адрес первого байта имени)
         31 AND                ( вычисление числа байт в имени)
         TYPE SPACE ;    ( распечатка имени с пробелом в конце)

Описание и определение слова ID. в ядре ФОРТ-ЕС:

ID.     * NFA-> НАПЕЧАТАТЬ ИМЯ СЛОВА И ДАТЬ ПРОБЕЛ              31

                     Экран номер 31
( 31.03.86    LATEST DEFINITIONS SMUDGE UNSMUDGE IMMEDIATE ID.)

: ID.  ( NFA-> )  DUP 1+ SWAP С@ [ &LENG ] LITERAL AND
          2DUP + C@ IF 1+  THEN TYPE SPACE ;

Определение слова ID. в FORTH ИТЭФ:

             HEAD    203Q,'ID',256Q,IDDOT,$COL            ; ID.
             DW  COUNT,LIT,37Q,$AND,$TYPE,SPACE,SEMI

Ссылки[править]


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.