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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 26: Строка 26:
  или
  или
         : X ... test IF ... ELSE ... THEN ... ;
         : X ... test IF ... ELSE ... THEN ... ;


== THEN в предыдущем стандарте Forth-83 (англ.) ==
== THEN в предыдущем стандарте Forth-83 (англ.) ==
Строка 38: Строка 37:
           IF when no ELSE is present.  sys is balanced with its
           IF when no ELSE is present.  sys is balanced with its
           corresponding IF or ELSE .  See:  IF  ELSE
           corresponding IF or ELSE .  See:  IF  ELSE


== Пример реализации THEN из предыдущего стандарта Forth-83 ==
== Пример реализации THEN из предыдущего стандарта Forth-83 ==
           : THEN  >RESOLVE  ; IMMEDIATE
           : THEN  >RESOLVE  ; IMMEDIATE


== THEN в стандарте Forth-79 (англ.) ==
== THEN в стандарте Forth-79 (англ.) ==
Строка 51: Строка 48:
     THEN  is  the point where execution resumes after ELSE  or  IF
     THEN  is  the point where execution resumes after ELSE  or  IF
     (when no ELSE is present).
     (when no ELSE is present).


== THEN в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
== THEN в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
Строка 68: Строка 64:
         At compile-time, ENDIF computes the forward branch offset from addr
         At compile-time, ENDIF computes the forward branch offset from addr
         to HERE and stores it at addr. n is used for error tests.
         to HERE and stores it at addr. n is used for error tests.


== Реализация THEN ==
== Реализация THEN ==
Строка 85: Строка 80:
{{заготовка}}
{{заготовка}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Слова высокого уровня]]
[[Категория:Слова с признаком IMMEDIATE]]
[[Категория:Структуры управления Каллисто]]
[[Категория:Структуры управления Каллисто]]
[[Категория:Слова Каллисто без стековых диаграмм]]
[[Категория:Слова Каллисто без стековых диаграмм]]

Версия от 01:52, 20 марта 2016

Пример работы слова THEN

THEN (тогда, то) — стандартное слово Каллисто.

Конец ветвления "IF".

Ввод слова THEN

В режиме ЛАТ последовательно нажмите четыре клавиши  2   ПП   ИП   4 

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

6.1.2270   THEN                                                            CORE
       Интерпретация: Семантика интерпретации для этого слова не определена.
       Компиляция: ( C: orig -- )
           Добавляет семантику времени-выполнения, данную ниже к текущему 
           определению. Разрешает ссылку вперед orig, используя адрес ячейки 
           добавленной семантики времени-выполнения.
       Время-выполнения: ( -- )
           Продолжает выполнение.
       См.: 6.1.1310 ELSE, 6.1.1700 IF.
A.6.1.2270   THEN
Типичное использование:
       : X ... test IF ... THEN ... ;
или
       : X ... test IF ... ELSE ... THEN ... ;

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

     THEN         --                            C,I,79
                  sys --   (compiling)
          Used in the form:
                  flag IF ... ELSE ... THEN
          or
                  flag IF ... THEN
          THEN is the point where execution continues after ELSE , or
          IF when no ELSE is present.  sys is balanced with its
          corresponding IF or ELSE .  See:  IF  ELSE

Пример реализации THEN из предыдущего стандарта Forth-83

          : THEN   >RESOLVE  ; IMMEDIATE

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

THEN                                         I,C,161
    Used in a colon-definition in the form:
         IF ... ELSE ... THEN   or
         IF ... THEN
    THEN  is  the point where execution resumes after ELSE  or  IF
    (when no ELSE is present).

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

THEN                                        P,CO,L0
       An alias for ENDIF.
ENDIF         addr  n  ---  (compile)       P,CO,L0
       Occurs in a colon-definition in form:
         IF ... ENDIF
         IF ... ELSE ... ENDIF
       At run-time, ENDIF serves only as the destination of a forward
       branch from IF or ELSE. It marks the conclusion of the conditional
       structure. THEN is another name for ENDIF. Both names are supported
       in fig-FORTH. See also IF and ELSE.
       At compile-time, ENDIF computes the forward branch offset from addr
       to HERE and stores it at addr. n is used for error tests.

Реализация THEN

Юрий Семёнов приводит следующее описание слова THEN (стр. 59):

 : THEN   ?COMP 2 ?PAIR HERE OVER - ↔ ! ; IMMEDIATE

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

: THEN  ( A,1 ---> )   1 ?PAIRS  >RESOLVE  ; IMMEDIATE

Ссылки


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


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