NAME⟩

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

NAME> (от имени) — фортовское слово Каллисто.

NAME>          ( a −− т )                           Получить токен по имени. Преобразовать NFA в CFA.

Слово NAME> позволяет получить токен слова, если известен начальный адрес его словарной статьи.

Ввод слова NAME>[править]

В режиме ЛАТ последовательно нажмите клавиши  4  $\mathrm{\overset{\leftarrow}{ШГ}}$  ÷   ИП     P   F   ИП 

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

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

Слово NAME> пришло в Каллисто из расширения стандарта Форт−83 — удобного, хотя и необязательного к реализации. Будучи слишком низкоуровневым, оно было исключено из стандарта 1994 года.

Слово из расширения стандарта Форт−83 (необязательное).

NAME> в предыдущем стандарте Forth-83 (англ.)[править]

     NAME>        addr1 -- addr2                           "from-name"
          addr2 is the compilation address corresponding to the name
          field address addr1.

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

2982 ;#NAMEfrom
2983 ; NAME>            ( a −− т )                           Получить токен по имени. Преобразовать NFA в CFA.
2984 LN2CFA:         .DB     5
2985                 .TEXT   "NAME>"                         ; ( nfa −− cfa )
2986                 .DW     LNLINK
2987 N2CFA:          .DW CALL
2988 RN2CFA:         .DW DUP,CAT, BL,MOD, PLUS, LITB         ; BL == 32
2989                 .DB 3
2990                 .DW PLUS, EXIT

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

CODE NAME> ( NFA -> CFA )
     MOV EAX, -5 [EAX]
     RET
END-CODE

CODE NAME>C ( NFA -> 'CFA )
     LEA EAX, -5 [EAX]
     RET
END-CODE

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

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

NAME>     *  NFA->CFA ПЕРЕЙТИ ОТ ПОЛЯ ИМЕНИ К ПОЛЮ КОДА         30

                     Экран номер 30
( 31.03.86  >BODY BODY> >LINK LINK> L>NAME N>LINK >NAME NAME> )

: LINK>  ( LFA->CFA) 2+ ;

: N>LINK  ( NFA->LFA)  DUP С@ 31 AND + 2+ ;

: NAME> ( NFA->CFA) N>LINK LINK> ;

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


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


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