NEXT: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) (Новая страница: «'''NEXT''' — стандартное слово Каллисто. {{нет иллюстраций}} {{заготовка}} Категория:Слова…») |
AtH (обсуждение | вклад) |
||
(не показана 31 промежуточная версия этого же участника) | |||
Строка 1: | Строка 1: | ||
'''NEXT''' — | '''NEXT''' (читается «нэкст») — усовершенствованное слово [[Каллисто]]. Конец цикла со счётчиком. | ||
NEXT ( −− ) Вернуться к FOR, если ещё остались повторения цикла. | |||
[[Файл:CallistoForNext.png|thumb|right|264px|Пример работы слова NEXT]] | |||
== Ввод слова NEXT == | |||
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите четыре клавиши [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша 0|{{Серая клавиша|0}}]] [[Клавиша 2|{{Серая клавиша|2}}]] | |||
== История цикла со счётчиком == | |||
Имя NEXT традиционно для цикла [[FOR]]. До включения в Каллисто и {{colorForth}} оно использовалось в Бейсике. | |||
Слово NEXT не надо путать с точкой NEXT [[Адресный интерпретатор|адресного интерпретатора]]. | |||
== Реализация == | |||
В [[Каллисто|Каллисто 1.0]] на этапе компиляции слово NEXT может вызывать [[Авост приложения|авост]] с [[MESSAGE|кодом ошибки]] 19. [[Авост приложения|Авост]] вызывает слово [[?PAIRS]], если не находит слово [[FOR]], которому соответствует данный NEXT . | |||
<pre> | |||
3730 ;#NEXT | |||
3731 ; NEXT I ( −− ) Вернуться к FOR, если ещё остались повторения цикла. | |||
3732 LSNEXT: .DB 84H | |||
3733 .TEXT "NEXT" ; К | |||
3734 .DW LFOR ; Конец цикла со счётчиком. | |||
3735 SNEXT: .DW CALL, PI,QPAIR, COMP,XNEXTD, LRESOLVE, BRAN,RGRESOLVE | |||
</pre> | |||
=== Советская реализация цикла со счётчиком === | |||
Описание слов LOOP +LOOP и определение цикла DO…LOOP в ядре ФОРТ-ЕС: | |||
<pre> | |||
+LOOP НК A1,A2,3 -> /КОМПИЛЯЦИЯ/ КОНЕЦ ЦИКЛА 47 | |||
N -> /ИСПОЛНЕНИЕ/ "DO +LOOP" С ШАГОМ N | |||
LOOP HK A1,A2,3-> /КОМПИЛЯЦИЯ/ КОНЕЦ ЦИКЛА "DO LOOP" 47 | |||
-> /ИСПОЛНЕНИЕ/ | |||
Экран номер 47 | |||
( 31.03.86 СТАНДАРТНЫЕ СТРУКТУРЫ УПРАВЛЕНИЯ ) | |||
: DO ?COMP COMPILE (DO) >MARK <MARK 3 ; IMMEDIATE | |||
: LOOP 3 ?PAIRS COMPILE (LOOP) <RESOLVE >RESOLVE ; IMMEDIATE | |||
: +LOOP 3 7PAIRS COMPILE (+LOOP) <RESOLVE >RESOLVE ; IMMEDIATE | |||
</pre> | |||
Определения цикла DO…LOOP/+LOOP в FORTH ИТЭФ через [[(FOR)|(DO)]] и [[(NEXT)|(LOOP)/(+LOOP)]]: | |||
<PRE> | |||
HEAD 302Q,'D',317Q,$DO,$COL ; DO | |||
DW COMP,XDO,HERE,THREE,SEMI | |||
HEAD 304Q,'LOO',320Q,LOOP,$COL ; LOOP | |||
DW THREE,QPAIR,COMP,XLOOP,BACK,SEMI | |||
HEAD 305Q,'+LOO',320Q,PLOOP,$COL ; +LOOP | |||
DW THREE,QPAIR,COMP,XPLOO,BACK,SEMI | |||
</PRE> | |||
== Ссылки == | |||
* {{Исходник|NEXT|NEXT}} | |||
* См. слова [[FOR]], [[LEAVE]], [[UNLOOP]], [[Слово I|I]], [[Слово J|J]] и [[Слово K|K]] | |||
* [https://en.wikipedia.org/wiki/For_loop For loop в английской Википедии] ''(англ.)'' | |||
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\06.ZIKLITESKIE%20STRUKTURY ЦИКЛИЧЕСКИЕ СТРУКТУРЫ] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»] | |||
{{заготовка}} | {{заготовка}} | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Слова высокого уровня]] | |||
[[Категория:Слова с признаком IMMEDIATE]] | |||
[[Категория:Структуры управления Каллисто]] | |||
[[Категория:Слова, способные вызывать авост приложения]] | |||
[[Категория:Компилирующие слова]] | |||
[[Категория:Фортовские слова]] | |||
[[Категория:Усовершенствованные слова]] |
Текущая версия от 01:42, 22 января 2018
NEXT (читается «нэкст») — усовершенствованное слово Каллисто. Конец цикла со счётчиком.
NEXT ( −− ) Вернуться к FOR, если ещё остались повторения цикла.
Ввод слова NEXT[править]
В режиме ЛАТ последовательно нажмите четыре клавиши 4 ИП 0 2
История цикла со счётчиком[править]
Имя NEXT традиционно для цикла FOR. До включения в Каллисто и colorForth оно использовалось в Бейсике.
Слово NEXT не надо путать с точкой NEXT адресного интерпретатора.
Реализация[править]
В Каллисто 1.0 на этапе компиляции слово NEXT может вызывать авост с кодом ошибки 19. Авост вызывает слово ?PAIRS, если не находит слово FOR, которому соответствует данный NEXT .
3730 ;#NEXT 3731 ; NEXT I ( −− ) Вернуться к FOR, если ещё остались повторения цикла. 3732 LSNEXT: .DB 84H 3733 .TEXT "NEXT" ; К 3734 .DW LFOR ; Конец цикла со счётчиком. 3735 SNEXT: .DW CALL, PI,QPAIR, COMP,XNEXTD, LRESOLVE, BRAN,RGRESOLVE
Советская реализация цикла со счётчиком[править]
Описание слов LOOP +LOOP и определение цикла DO…LOOP в ядре ФОРТ-ЕС:
+LOOP НК A1,A2,3 -> /КОМПИЛЯЦИЯ/ КОНЕЦ ЦИКЛА 47 N -> /ИСПОЛНЕНИЕ/ "DO +LOOP" С ШАГОМ N LOOP HK A1,A2,3-> /КОМПИЛЯЦИЯ/ КОНЕЦ ЦИКЛА "DO LOOP" 47 -> /ИСПОЛНЕНИЕ/ Экран номер 47 ( 31.03.86 СТАНДАРТНЫЕ СТРУКТУРЫ УПРАВЛЕНИЯ ) : DO ?COMP COMPILE (DO) >MARK <MARK 3 ; IMMEDIATE : LOOP 3 ?PAIRS COMPILE (LOOP) <RESOLVE >RESOLVE ; IMMEDIATE : +LOOP 3 7PAIRS COMPILE (+LOOP) <RESOLVE >RESOLVE ; IMMEDIATE
Определения цикла DO…LOOP/+LOOP в FORTH ИТЭФ через (DO) и (LOOP)/(+LOOP):
HEAD 302Q,'D',317Q,$DO,$COL ; DO DW COMP,XDO,HERE,THREE,SEMI HEAD 304Q,'LOO',320Q,LOOP,$COL ; LOOP DW THREE,QPAIR,COMP,XLOOP,BACK,SEMI HEAD 305Q,'+LOO',320Q,PLOOP,$COL ; +LOOP DW THREE,QPAIR,COMP,XPLOO,BACK,SEMI
Ссылки[править]
- Исходный текст слова NEXT в Каллисто Классик 1.0
- См. слова FOR, LEAVE, UNLOOP, I, J и K
- For loop в английской Википедии (англ.)
- ЦИКЛИЧЕСКИЕ СТРУКТУРЫ в книге Л.Броуди «Начальный курс программирования на языке Форт»
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |