BEGIN: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) |
||
Строка 75: | Строка 75: | ||
: BEGIN ?COMP HERE 1 ; IMMEDIATE | : BEGIN ?COMP HERE 1 ; IMMEDIATE | ||
У Баранова-Ноздрунова определение слова BEGIN выглядит так (стр. 58): | |||
: BEGIN ( ---> A,2 ) <MARK 2 ; IMMEDIATE | |||
== Ссылки == | == Ссылки == |
Версия от 17:07, 11 сентября 2015
BEGIN — стандартное слово Каллисто.
Начало циклов "BEGIN".
BEGIN в стандарте ANS Forth
6.1.0760 BEGIN CORE Интерпретация: Семантика интерпретации для этого слова не определена.
Компиляция: ( C: -- dest ) Помещает адрес следующей ячейки для передачи управления, dest, на стек потока-управления. Добавляет семантику времени-выполнения, данную ниже к текущему определению.
Время-выполнения: ( -- ) Продолжает выполнение.
См.: 3.2.3.2 Стек потока-управления, 6.1.2140 REPEAT, 6.1.2390 UNTIL, 6.1.2430 WHILE.
A.6.1.0760 BEGIN Типичное использование: : X ... BEGIN ... test UNTIL ; или : X ... BEGIN ... test WHILE ... REPEAT ;
BEGIN в предыдущем стандарте Forth-83 (англ.)
BEGIN -- C,I,79 -- sys (compiling) Used in the form: BEGIN ... flag UNTIL or BEGIN ... flag WHILE ... REPEAT BEGIN marks the start of a word sequence for repetitive execution. A BEGIN-UNTIL loop will be repeated until flag is true. A BEGIN-WHILE-REPEAT will be repeated until flag is false. The words after UNTIL or REPEAT will be executed when either loop is finished. sys is balanced with its corresponding UNTIL or WHILE . See: "9.9 Control Structures"
BEGIN в стандарте Forth-79 (англ.)
BEGIN I,C,147 Used in a colon-definition in the form: BEGIN ... flag UNTIL or BEGIN ... flag WHILE ... REPEAT BEGIN marks the start of a word sequence for repetitive execution. A BEGIN-UNTIL loop will be repeated until flag is true. A BEGIN-WHILE-REPEAT loop will be repeated until flag is false. The words after UNTIL or REPEAT will be executed when either loop is finished. flag is always dropped after being tested.
BEGIN в fig-FORTH Release 1 glossary, май 1979 (англ.)
BEGIN --- addr n (compiling) P,L0 Occurs in a colon-definition in form: BEGIN ... UNTIL BEGIN ... AGAIN BEGIN ... WHILE ... REPEAT At run-time, BEGIN marks the start of a sequence that may be repetitively executed. It serves as a return point from the corresponding UNTIL, AGAIN or REPEAT. When executing UNTIL, a return to BEGIN will occur if the top of the stack is false; for AGAIN and REPEAT a return to BEGIN always occurs.
At compile time BEGIN leaves its return address and n for compiler error checking.
Реализация BEGIN
Юрий Семёнов приводит следующее описание слова BEGIN (стр. 64):
: BEGIN ?COMP HERE 1 ; IMMEDIATE
У Баранова-Ноздрунова определение слова BEGIN выглядит так (стр. 58):
: BEGIN ( ---> A,2 ) <MARK 2 ; IMMEDIATE
Ссылки
- Слово BEGIN в стандарте ANS Forth (англ.) и комментарий к нему (англ.)
- Слово BEGIN в черновике Forth 200x (англ.) и комментарий к нему (англ.)
- Цикл в Википедии
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |