⟩BODY

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

>BODY (к телу) — стандартное слово Каллисто. Получить адрес поля данных слова, токен которого находится в стеке.

>BODY          ( т −− a )                           К телу. Преобразовать адрес поля кода в адрес поля параметров.

Слово >BODY преобразует CFA в PFA.

Слово >BODY включено в обязательное «ядро» (CORE) действующего стандарта Форта и присутствует в черновике готовящегося стандарта. Его переносимость весьма необычна для таких «интимных» слов, как преобразования полей словарной статьи.

Ввод слова >BODY

В режиме NUM последовательно нажмите клавиши  F   ИП     Р-ГРД-Г   В/О   5   K    ,  

Для возврата в режим NUM нажмите синюю клавишу  P .

Детали реализации

Вообще говоря, поле кода может занимать больше двух байт, например быть векторным или быть созданным с помощью <BUILDS. Размер поля кода нигде не хранится, так что программист должен должен знать структуру поля кода обрабатываемого слова, а не полагаться на слово >BODY, обрабатывающее лишь стандартный случай.

>BODY в стандарте ANS Forth

 6.1.0550   >BODY                             "to-body"                     CORE
            ( xt -- a-addr )
            a-addr - адрес области данных соответствующей xt. Неопределенная 
            ситуация существует, если xt не для слова определенного через 
            CREATE.

        См.: 3.3.3 Область данных.

 A.6.1.0550   >BODY
 a-addr - адрес, который HERE возвратило бы, если бы было выполнено немедленно 
 после выполнения CREATE которое определило xt.

>BODY в предыдущем стандарте Forth-83 (англ.)

     >BODY        addr1 -- addr2                83           "to-body"
          addr2 is the parameter field address corresponding to the
          compilation address addr1.  See:  "9.2 Addressable Memory"

Реализация

В Каллисто слово >BODY является синонимом слова 2+ и использует его обработчик.

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

>BODY     CFA->PFA ОТ ПОЛЯ КОДА К ПОЛЮ ПАРАМЕТРОВ               30

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

: >BODY  ( CFA->PFA) 2+ ;

Ссылки


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


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