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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 24: Строка 24:
  Типичное использование:
  Типичное использование:
         : X ... BEGIN ... test UNTIL ... ;
         : X ... BEGIN ... test UNTIL ... ;


== UNTIL в предыдущем стандарте Forth-83 (англ.) ==
== UNTIL в предыдущем стандарте Forth-83 (англ.) ==
Строка 36: Строка 35:
           corresponding BEGIN .  sys is balanced with its
           corresponding BEGIN .  sys is balanced with its
           corresponding BEGIN .  See:  BEGIN
           corresponding BEGIN .  See:  BEGIN


== UNTIL в стандарте Forth-79 (англ.) ==
== UNTIL в стандарте Forth-79 (англ.) ==
Строка 44: Строка 42:
     is  terminated.  If flag is false,  execution returns to  the
     is  terminated.  If flag is false,  execution returns to  the
     first word after BEGIN.  BEGIN-UNTIL structures may be nested.
     first word after BEGIN.  BEGIN-UNTIL structures may be nested.


== UNTIL в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
== UNTIL в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
Строка 57: Строка 54:
         At compile-time, UNTIL compiles (0BRANCH) and an offset from HERE to
         At compile-time, UNTIL compiles (0BRANCH) and an offset from HERE to
         addr. n is used for error tests.
         addr. n is used for error tests.


== Реализация UNTIL ==
== Реализация UNTIL ==
Строка 70: Строка 65:
== История ==
== История ==
Форт-83, Форт-79 и fig-Форт допускали слово END, как синоним UNTIL.
Форт-83, Форт-79 и fig-Форт допускали слово END, как синоним UNTIL.


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

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

Цикл BEGIN xxx f UNTIL всегда выполняется хотя бы 1 раз.
Картинка из книги Лео Броди «Starting FORTH»

UNTIL (до, пока не) — стандартное слово Каллисто.

Конец описания цикла "BEGIN UNTIL".

Ввод слова UNTIL

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

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

6.1.2390   UNTIL                                                           CORE
       Интерпретация: Семантика интерпретации для этого слова не определена.
       Компиляция: ( C: dest -- )
           Добавляет семантику времени-выполнения, данную ниже к текущему 
           определению, разрешая ссылку назад dest.
       Время-выполнения: ( x -- )
           Если все биты x нулевые, продолжает выполнение с адреса ячейки 
           определенного dest.
       См.: 6.1.0760 BEGIN.
A.6.1.2390   UNTIL
Типичное использование:
       : X ... BEGIN ... test UNTIL ... ;

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

     UNTIL        flag --                       C,I,79
                  sys --   (compiling)
          Used in the form:
                  BEGIN ... flag UNTIL
          Marks the end of a BEGIN-UNTIL loop which will terminate
          based on flag.  If flag is true, the loop is terminated.  If
          flag is false, execution continues to just after the
          corresponding BEGIN .  sys is balanced with its
          corresponding BEGIN .  See:  BEGIN

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

UNTIL          flag --                       I,C,,237
    Within a colon-definition, mark the end of a BEGIN-UNTIL loop,
    which will terminate based on flag.  If flag is true, the loop
    is  terminated.   If flag is false,  execution returns to  the
    first word after BEGIN.  BEGIN-UNTIL structures may be nested.

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

UNTIL          f --- (run-time)       addr n --- (compile) P,C2,L0
       Occurs within a colon-definition in the form:
                       BEGIN ... UNTIL
       At run-time, UNTIL controls the conditional branch back to the
       corresponding BEGIN. If f is false, execution returns to just after.
       BEGIN;
       if true, execution continues ahead.
       At compile-time, UNTIL compiles (0BRANCH) and an offset from HERE to
       addr. n is used for error tests.

Реализация UNTIL

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

 : UNTIL   1 ?PAIR COMPILE ?BRANCH <RESOLVE ; IMMEDIATE

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

: UNTIL  ( A1,2 ---> )   2 ?PAIRS
      COMPILE  ?BRANCH  <RESOLVE  ;  IMMEDIATE

История

Форт-83, Форт-79 и fig-Форт допускали слово END, как синоним UNTIL.

Ссылка


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