IMMEDIATE: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 1: Строка 1:
'''IMMEDIATE''' (немедленный, непосредственный, немедленно) — стандартное слово [[Каллисто]].
'''IMMEDIATE''' (немедленный, непосредственный, немедленно) — стандартное слово [[Каллисто]].
  IMMEDIATE      ( −− )                              Изменить признак IMMEDIATE последней созданной статьи.
  IMMEDIATE      ( −− )                              Изменить признак IMMEDIATE последней созданной статьи.
Преобразует слово, за описанием которого следует, в оператор, исполняемый при компиляции.
Преобразует слово, за описанием которого следует, в оператор, исполняемый [[Слово ]|при компиляции]].


== Ввод слова IMMEDIATE ==
== Ввод слова IMMEDIATE ==
Строка 75: Строка 75:
== Ссылки ==
== Ссылки ==
* {{Исходник|IMMEDIATE|IMMEDIATE}}
* {{Исходник|IMMEDIATE|IMMEDIATE}}
* См. слова [[STATE]], [[Слово [|[]] и [[Слово ]|]]]
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.1710 IMMEDIATE] и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.1.1710 комментарий к нему] в стандарте ANS Forth ''(англ.)''
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.1710 IMMEDIATE] и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.1.1710 комментарий к нему] в стандарте ANS Forth ''(англ.)''
* Слово [http://forth-standard.org/standard/core/IMMEDIATE IMMEDIATE] и [http://forth-standard.org/standard/rationale#rat:core:IMMEDIATE комментарий к нему] в черновике Forth 200x ''(англ.)''
* Слово [http://forth-standard.org/standard/core/IMMEDIATE IMMEDIATE] и [http://forth-standard.org/standard/rationale#rat:core:IMMEDIATE комментарий к нему] в черновике Forth 200x ''(англ.)''

Версия от 12:48, 23 июня 2016

IMMEDIATE (немедленный, непосредственный, немедленно) — стандартное слово Каллисто.

IMMEDIATE      ( −− )                               Изменить признак IMMEDIATE последней созданной статьи.

Преобразует слово, за описанием которого следует, в оператор, исполняемый при компиляции.

Ввод слова IMMEDIATE

В режиме ЛАТ последовательно нажмите клавиши  7   ÷   ÷   ИП   K   7   ШГ←   2   ИП 

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

Изменяет признак немедленного исполнения в байте-счётчике, первом байте заголовка последней созданной словарной статьи.

IMMEDIATE в стандарте ANS Forth

 6.1.1710   IMMEDIATE                                                       CORE
            ( -- )
            Делает самое последнее определение словом немедленного исполнения. 
            Неопределенная ситуация существует, если самое последнее 
            определение не имеет имени.

        См.: D.6.7 Immediate-ности.

 A.6.1.1710   IMMEDIATE
 Типичное использование:
        : X  ...  ;  IMMEDIATE

История

В некоторых Фортах IMMEDIATE не переключает, а строго устанавливает. Как его там сбросить? :−)

В некоторых Фортах вместо числа 128 используется константа &IFLAG или &IMMEDIATE

Чак Мур, создатель Форта, при разработке своего первого форт-процессора Novix сделал для него версию Форта под названием cmForth. В ней не было слова IMMEDIATE, а был список MACRO. Список MACRO просматривался первым и добавленные в него слова исполнялись без компиляции. Похожая система перешла в colorForth и, возможно, будет реализована в Каллисто 2.0.

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

     IMMEDIATE    --                            79
          Marks the most recently created dictionary entry as a word
          which will be executed when encountered during compilation
          rather than compiled.

IMMEDIATE в стандарте Forth-79 (англ.)

IMMEDIATE                                    103
    Marks the most recently made dictionary entry as a word  which
    will  be  executed when encountered during compilation  rather
    than compiled.

IMMEDIATE в fig-FORTH Release 1 glossary, май 1979 (англ.)

IMMEDIATE
       Mark the most recently made definition so that when encountered at
       compile time, it will be executed rather than being compiled. i.e.
       the precedence bit in its header is set.
       This method allows definitions to handle unusual compiling
       situations, rather. than build them into the fundamental compiler.
       The user may force compilation of an immediate definition by
       preceeding it with [COMPILE],

Реализация

У Баранова-Ноздрунова определение слова IMMEDIATE выглядит так (стр. 64):

: IMMEDIATE  ( ---> )   LATEST C@ 128 OR LATEST C!  ;

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

IMMEDIATE -> ДАТЬ ПРИЗНАК "IMMEDIATE" ПОСЛЕДНЕЙ                 31
          СОЗДАННОЙ СЛОВАРНОЙ СТАТЬЕ

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

: IMMEDIATE ( ->)  LATEST С@ [ &IFLAG ] LITERAL OR LATEST C! ;

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

             HEAD    211Q,'IMMEDIAT',305Q,IMMED,$COL      ; IMMEDIATE
             DW  LATES,$CL,TOGL,SEMI

Ссылки


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


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