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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
Строка 1: Строка 1:
'''BRANCH''' (переход, ветвление) — стандартное слово [[Каллисто]].
'''BRANCH''' (переход, ветвление) — стандартное слово [[Каллисто]]. Продолжить интерпретацию от значения следующего скомпилированного адреса.
BRANCH        ( -- )                          Ветвление. Безусловный переход в шитом коде.
Слово BRANCH переустанавливает указатель интерпретации по адресу, скомпилированному вслед за данной ссылкой на [[xt]] BRANCH.


Безусловный переход в шитом коде.
Слово BRANCH не является аналогом оператора GOTO. Обычно BRANCH не используется при составлении программ, а только в словах вроде [[ELSE]] и [[REPEAT]]. Адрес ветвления должен быть скомпилирован сразу после оператора BRANCH
 
Слово BRANCH переустанавливает указатель интерпретации по адресу, скомпилированному вслед за данной ссылкой на статью BRANCH.
 
Слово BRANCH не является аналогом оператора GOTO и обычно компилируется в шитый код лишь служебными словами. В прикладных программах необходимость использования слова BRANCH не возникает.


== Ввод слова BRANCH ==
== Ввод слова BRANCH ==
Строка 17: Строка 15:
           The branch address is typically generated by following
           The branch address is typically generated by following
           BRANCH with <RESOLVE or >MARK .
           BRANCH with <RESOLVE or >MARK .


== BRANCH в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
== BRANCH в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
Строка 24: Строка 21:
         is added to the interpretive pointer IP to branch ahead or back.
         is added to the interpretive pointer IP to branch ahead or back.
         BRANCH is compiled by ELSE, AGAIN, REPEAT.
         BRANCH is compiled by ELSE, AGAIN, REPEAT.


== Реализация BRANCH ==
== Реализация BRANCH ==
Строка 39: Строка 35:
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Реализация структур управления Каллисто]]
[[Категория:Реализация структур управления Каллисто]]
[[Категория:Слова Каллисто без стековых диаграмм]]

Версия от 04:15, 19 марта 2016

BRANCH (переход, ветвление) — стандартное слово Каллисто. Продолжить интерпретацию от значения следующего скомпилированного адреса.

BRANCH         ( -- )                          Ветвление. Безусловный переход в шитом коде.

Слово BRANCH переустанавливает указатель интерпретации по адресу, скомпилированному вслед за данной ссылкой на xt BRANCH.

Слово BRANCH не является аналогом оператора GOTO. Обычно BRANCH не используется при составлении программ, а только в словах вроде ELSE и REPEAT. Адрес ветвления должен быть скомпилирован сразу после оператора BRANCH

Ввод слова BRANCH

В режиме ЛАТ последовательно нажмите клавиши  В/О   ×   ШГ←   4   С/П   ПП 

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

     BRANCH       --                            C,83
          When used in the form:  COMPILE BRANCH  an unconditional
          branch operation is compiled.  A branch address must be
          compiled immediately following this compilation address.
          The branch address is typically generated by following
          BRANCH with <RESOLVE or >MARK .

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

BRANCH                                       C2,L0
       The run-time proceedure to unconditionally branch. An in-line offset
       is added to the interpretive pointer IP to branch ahead or back.
       BRANCH is compiled by ELSE, AGAIN, REPEAT.

Реализация BRANCH

У Баранова-Ноздрунова приводится следующее описание слова BRANCH (стр. 54):

 : BRANCH   ( ---> )    R>  @  >R  ;

Ссылки

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


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