Редактирование: BEGIN
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
'''BEGIN''' (начать, начало) — стандартное слово [[Каллисто]]. | '''BEGIN''' (начать, начало) — стандартное слово [[Каллисто]]. | ||
Начало цикла — [[Цикл BEGIN-WHILE-REPEAT|BEGIN…WHILE…REPEAT]], [[Цикл BEGIN-UNTIL|BEGIN…UNTIL]] или BEGIN…[[AGAIN]]. | |||
Главное назначение оператора BEGIN (при компиляции) — запись в [[Стек данных|стек]] текущего значения указателя [[HERE]], которое использует компилятор, чтобы сформировать правильный адрес ветвления при обработке оператора [[UNTIL]], [[REPEAT]] или [[AGAIN]]. | |||
== Ввод слова BEGIN == | == Ввод слова BEGIN == | ||
Строка 12: | Строка 9: | ||
== BEGIN в стандарте ANS Forth == | == BEGIN в стандарте ANS Forth == | ||
6.1.0760 BEGIN CORE | 6.1.0760 BEGIN CORE | ||
Интерпретация: Семантика интерпретации для этого слова не определена. | Интерпретация: Семантика интерпретации для этого слова не определена. | ||
Строка 32: | Строка 28: | ||
или | или | ||
: X ... BEGIN ... test WHILE ... REPEAT ; | : X ... BEGIN ... test WHILE ... REPEAT ; | ||
== BEGIN в предыдущем стандарте Forth-83 (англ.) == | |||
BEGIN -- C,I,79 | BEGIN -- C,I,79 | ||
-- sys (compiling) | -- sys (compiling) | ||
Строка 50: | Строка 45: | ||
Structures" | Structures" | ||
== BEGIN в стандарте Forth-79 (англ.) == | |||
BEGIN I,C,147 | BEGIN I,C,147 | ||
Used in a colon-definition in the form: | Used in a colon-definition in the form: | ||
Строка 62: | Строка 58: | ||
being tested. | being tested. | ||
== BEGIN в fig-FORTH Release 1 glossary, май 1979 (англ.) == | |||
BEGIN --- addr n (compiling) P,L0 | BEGIN --- addr n (compiling) P,L0 | ||
Occurs in a colon-definition in form: | Occurs in a colon-definition in form: | ||
Строка 77: | Строка 73: | ||
At compile time BEGIN leaves its return address and n for compiler | At compile time BEGIN leaves its return address and n for compiler | ||
error checking. | error checking. | ||
== Реализация BEGIN == | |||
Юрий Семёнов приводит следующее описание слова BEGIN (стр. 64): | |||
== | |||
Юрий Семёнов приводит следующее | |||
: BEGIN ?COMP HERE 1 ; IMMEDIATE | : BEGIN ?COMP HERE 1 ; IMMEDIATE | ||
Строка 119: | Строка 84: | ||
В 11-й главе [http://www.forth.com/starting-forth/sf11/sf11.html Starting FORTH] слово BEGIN определяется так: | В 11-й главе [http://www.forth.com/starting-forth/sf11/sf11.html Starting FORTH] слово BEGIN определяется так: | ||
: BEGIN HERE ; IMMEDIATE | : BEGIN HERE ; IMMEDIATE | ||
== Ссылки == | == Ссылки == | ||
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0760 BEGIN] и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.1.0760 комментарий к нему] в стандарте ANS Forth ''(англ.)'' | * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0760 BEGIN] и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.1.0760 комментарий к нему] в стандарте ANS Forth ''(англ.)'' | ||
* Слово [http:// | * Слово [http://www.forth200x.org/documents/html3/core/BEGIN.html BEGIN] и [http://www.forth200x.org/documents/html3/rationale.html#rat:core:BEGIN комментарий к нему] в черновике Forth 200x ''(англ.)'' | ||
* [https://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D0%BA%D0%BB_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29 Цикл в Википедии] | * [https://ru.wikipedia.org/wiki/%D0%A6%D0%B8%D0%BA%D0%BB_%28%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5%29 Цикл в Википедии] | ||
Строка 154: | Строка 94: | ||
{{заготовка}} | {{заготовка}} | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Структуры управления Каллисто]] | [[Категория:Структуры управления Каллисто]] | ||
[[Категория:Слова | [[Категория:Слова Каллисто без стековых диаграмм]] | ||