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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Строка 63: Строка 63:
== Реализация WHILE ==
== Реализация WHILE ==
Юрий Семёнов приводит следующее описание слова WHILE (стр. 65):
Юрий Семёнов приводит следующее описание слова WHILE (стр. 65):
   : WHILE  IF ; IMMEDIATE
   : WHILE  [COMPILE] IF ; IMMEDIATE
 


== Ссылка ==
== Ссылка ==

Версия от 08:06, 9 сентября 2015

WHILE — стандартное слово Каллисто.

Ветвление "WHILE" в цикле "BEGIN WHILE REPEAT".


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

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


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

     WHILE        flag --                       C,I,79
                  sys1 -- sys2   (compiling)
          Used in the form:
                  BEGIN ... flag WHILE ... REPEAT
          Selects conditional execution based on flag.  When flag is
          true, execution continues to just after the WHILE through to
          the REPEAT which then continues execution back to just after
          the BEGIN .  When flag is false, execution continues to just
          after the REPEAT , exiting the control structure.  sys1 is
          balanced with its corresponding BEGIN .  sys2 is balanced
          with its corresponding REPEAT .  See:  BEGIN


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

WHILE          flag --                       I,C,149
    Used in the form:
         BEGIN ... flag WHILE ... REPEAT
    Select conditional execution based on flag.   On a true  flag,
    continue execution through to REPEAT,  which then returns back
    to just after BEGIN.   On a false flag, skip execution to just
    after REPEAT, exiting the structure.


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

WHILE   f --- (run-time)     ad1 nl --- ad1 n1 ad2 n2 p,C2
       Occurs in a colon-definition in the form:
                 BEGIN ... WHILE (tp) ... REPEAT
       At run-time, WHILE selects conditional execution based on boolean
       flag f. If f is true (non-zero), WHILE continues execution of the
       true part thru to REPEAT, which then branches back to BEGIN. If f is
       false (zero), execution skips to just after REPEAT, exiting the
       structure.
       At compile time, WHILE emplaces (0BRANCH) and leaves ad2 of the
       reserved offset. The stack values will be resolved by REPEAT.


Реализация WHILE

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

 : WHILE   [COMPILE] IF ; IMMEDIATE

Ссылка


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


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