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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 4: Строка 4:
Конец описания [[Цикл BEGIN-UNTIL|цикла "BEGIN UNTIL"]].
Конец описания [[Цикл BEGIN-UNTIL|цикла "BEGIN UNTIL"]].


== Ввод слова UNTIL ==
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша -|{{Серая клавиша|−}}]]


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

Версия от 06:52, 23 февраля 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.


Ссылка


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