Редактирование: THEN

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 5: Строка 5:
== Ввод слова THEN ==
== Ввод слова THEN ==
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите четыре клавиши [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша ПП|{{Чёрная клавиша|ПП}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша 4|{{Серая клавиша|4}}]]
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите четыре клавиши [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша ПП|{{Чёрная клавиша|ПП}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] [[Клавиша 4|{{Серая клавиша|4}}]]
== Детали реализации ==
На этапе компиляции THEN может вызывать [[Авост приложения|авост]].


== THEN в стандарте ANS Forth ==
== THEN в стандарте ANS Forth ==
Строка 41: Строка 44:


В некоторых старых Фортах слово THEN называлось ENDIF
В некоторых старых Фортах слово THEN называлось ENDIF
В Форте-94 кроме IF … THEN слово THEN также употребляется в контексте безусловного перехода вперёд AHEAD … THEN


=== THEN в предыдущем стандарте Forth-83 (англ.) ===
=== THEN в предыдущем стандарте Forth-83 (англ.) ===
Строка 83: Строка 84:


== Реализация ==
== Реализация ==
На этапе компиляции THEN может вызывать [[Авост приложения|авост]].
<pre>
3642 RGRESOLVE:      .DW HERE, LITP
3643                .DB 39,17                      ; 10001
3644                .DW SUB, SWAP, STORE, EXIT
3684 ;#THEN
3685 ; THEN          I ( −− )                              Конец ветвления IF.
3686 LTHEN:          .DB    84H
3687                .TEXT  "THEN"
3688                .DW    LBEGIN
3689 THEN:          .DW CALL
3690 RTHEN:          .DW TWO,QPAIR, BRAN,RGRESOLVE
</pre>
Реализации из SP-Forth 4.20:
<pre>
: THEN \ 94
\ Интерпретация: семантика неопределена.
\ Компиляция: ( C: orig -- )
\ Разрешить ссылку вперед orig, используя позицию семантики выполнения.
\ Добавить семантику времени выполнения, данную ниже, к текущему определению.
\ Время выполнения: ( -- )
\ Продолжить выполнение.
  ?COMP \ HERE TO :-SET
  >ORESOLVE
; IMMEDIATE
</pre>
<pre>
: THEN  ?COMP  TC>RESOLVE ; IMMEDIATE
</pre>
=== Советская реализация ===
Юрий Семёнов приводит следующее описание слова THEN (стр. 59):
Юрий Семёнов приводит следующее описание слова THEN (стр. 59):
   : THEN  ?COMP 2 ?PAIR HERE OVER - ↔ ! ; IMMEDIATE
   : THEN  ?COMP 2 ?PAIR HERE OVER - ↔ ! ; IMMEDIATE
Строка 155: Строка 124:
[[Категория:Структуры управления Каллисто]]
[[Категория:Структуры управления Каллисто]]
[[Категория:Слова, способные вызывать авост приложения]]
[[Категория:Слова, способные вызывать авост приложения]]
[[Категория:Компилирующие слова]]
[[Категория:Стандартные слова]]
[[Категория:1994 CORE]]
[[Категория:2012 CORE]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)
Источник — https://pmk.the-hacker.ru/THEN