Редактирование: UNTIL
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
[[Файл:indefinite.gif|thumb|right|491px|Цикл BEGIN xxx f UNTIL всегда выполняется хотя бы 1 раз.<br>Картинка из книги Лео Броди «Starting FORTH»]] | [[Файл:indefinite.gif|thumb|right|491px|Цикл BEGIN xxx f UNTIL всегда выполняется хотя бы 1 раз.<br>Картинка из книги Лео Броди «Starting FORTH»]] | ||
Конец описания [[Цикл BEGIN-UNTIL|цикла "BEGIN UNTIL"]]. | '''UNTIL''' (до, пока не) — стандартное слово [[Каллисто]]. | ||
Конец описания [[Цикл BEGIN-UNTIL|цикла "BEGIN UNTIL"]]. | |||
== Ввод слова UNTIL == | == Ввод слова UNTIL == | ||
Строка 9: | Строка 8: | ||
== UNTIL в стандарте ANS Forth == | == UNTIL в стандарте ANS Forth == | ||
6.1.2390 UNTIL CORE | 6.1.2390 UNTIL CORE | ||
Интерпретация: Семантика интерпретации для этого слова не определена. | Интерпретация: Семантика интерпретации для этого слова не определена. | ||
Строка 26: | Строка 24: | ||
Типичное использование: | Типичное использование: | ||
: X ... BEGIN ... test UNTIL ... ; | : X ... BEGIN ... test UNTIL ... ; | ||
== UNTIL в предыдущем стандарте Forth-83 (англ.) == | |||
UNTIL flag -- C,I,79 | UNTIL flag -- C,I,79 | ||
sys -- (compiling) | sys -- (compiling) | ||
Строка 46: | Строка 36: | ||
corresponding BEGIN . See: BEGIN | corresponding BEGIN . See: BEGIN | ||
== UNTIL в стандарте Forth-79 (англ.) == | |||
UNTIL flag -- I,C,,237 | UNTIL flag -- I,C,,237 | ||
Within a colon-definition, mark the end of a BEGIN-UNTIL loop, | Within a colon-definition, mark the end of a BEGIN-UNTIL loop, | ||
Строка 53: | Строка 43: | ||
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 f --- (run-time) addr n --- (compile) P,C2,L0 | UNTIL f --- (run-time) addr n --- (compile) P,C2,L0 | ||
Occurs within a colon-definition in the form: | Occurs within a colon-definition in the form: | ||
Строка 66: | Строка 56: | ||
== Реализация == | == Реализация == | ||
Юрий Семёнов приводит следующее описание слова UNTIL (стр. 65): | Юрий Семёнов приводит следующее описание слова UNTIL (стр. 65): | ||
: UNTIL 1 ?PAIR COMPILE ?BRANCH <RESOLVE ; IMMEDIATE | : UNTIL 1 ?PAIR COMPILE ?BRANCH <RESOLVE ; IMMEDIATE | ||
Строка 128: | Строка 78: | ||
DW ONE,QPAIR,COMP,ZBRAN,BACK,SEMI | DW ONE,QPAIR,COMP,ZBRAN,BACK,SEMI | ||
</PRE> | </PRE> | ||
== История == | |||
В 1968 году Чак Мур работал в Mohasco Industries, Inc ([https://en.wikipedia.org/wiki/Amsterdam_%28city%29,_New_York Amsterdam NY], ''англ.''). Первая версия интерпретатора, получившая название FORTH, заработала на миникомпьютере IBM 1130 с графическим дисплеем 2250 (16-битный процессор с ОЗУ 8К, дисководом, клавиатурой, принтером и ридером/панчером перфокарт). Первый FORTH знал слово UNTIL под именем END | |||
Слово END, как синоним UNTIL, допускали Форт-83, Форт-79 и fig-Форт. | |||
Создатель Форта Чак Мур признался, что заимствовал цикл BEGIN…UNTIL из языка Алгол. | |||
== Ссылка == | == Ссылка == | ||
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2390 UNTIL] и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.1.2390 комментарий к нему] в стандарте ANS Forth ''(англ.)'' | * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.2390 UNTIL] и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.1.2390 комментарий к нему] в стандарте ANS Forth ''(англ.)'' | ||
* Слово [http://forth-standard.org/standard/core/UNTIL UNTIL] и [http://forth-standard.org/standard/rationale#rat:core:UNTIL комментарий к нему] в черновике Forth 200x ''(англ.)'' | * Слово [http://forth-standard.org/standard/core/UNTIL UNTIL] и [http://forth-standard.org/standard/rationale#rat:core:UNTIL комментарий к нему] в черновике Forth 200x ''(англ.)'' | ||
Строка 145: | Строка 99: | ||
[[Категория:Слова с признаком IMMEDIATE]] | [[Категория:Слова с признаком IMMEDIATE]] | ||
[[Категория:Структуры управления Каллисто]] | [[Категория:Структуры управления Каллисто]] | ||
[[Категория:Слова | [[Категория:Слова Каллисто без стековых диаграмм]] | ||