NEXT: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) (→Ссылки) |
AtH (обсуждение | вклад) |
||
(не показаны 2 промежуточные версии этого же участника) | |||
Строка 5: | Строка 5: | ||
== Ввод слова NEXT == | == Ввод слова NEXT == | ||
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите четыре клавиши [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша 0|{{Серая клавиша|0}}]] [[Клавиша 2|{{Серая клавиша|2}}]] | В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите четыре клавиши [[Клавиша 4|{{Серая клавиша|4}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша 0|{{Серая клавиша|0}}]] [[Клавиша 2|{{Серая клавиша|2}}]] | ||
== История цикла со счётчиком == | == История цикла со счётчиком == | ||
Строка 14: | Строка 11: | ||
Слово NEXT не надо путать с точкой NEXT [[Адресный интерпретатор|адресного интерпретатора]]. | Слово 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 в ядре ФОРТ-ЕС: | Описание слов LOOP +LOOP и определение цикла DO…LOOP в ядре ФОРТ-ЕС: | ||
<pre> | <pre> | ||
Строка 56: | Строка 64: | ||
[[Категория:Слова, способные вызывать авост приложения]] | [[Категория:Слова, способные вызывать авост приложения]] | ||
[[Категория:Компилирующие слова]] | [[Категория:Компилирующие слова]] | ||
[[Категория:Фортовские слова]] | |||
[[Категория:Усовершенствованные слова]] |
Текущая версия от 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 в английской Википедии (англ.)
- ЦИКЛИЧЕСКИЕ СТРУКТУРЫ в книге Л.Броуди «Начальный курс программирования на языке Форт»
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |