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

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

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

Текущая версия Ваш текст
Строка 5: Строка 5:
== Ввод слова COMPILE ==
== Ввод слова COMPILE ==
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша С/П|{{Чёрная клавиша|С/П}}]] [[Клавиша 5|{{Серая клавиша|5}}]] [[Клавиша ÷|{{Серая клавиша|÷}}]] [[Клавиша 6|{{Серая клавиша|6}}]] [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша -|{{Серая клавиша|−}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]
В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите клавиши [[Клавиша С/П|{{Чёрная клавиша|С/П}}]] [[Клавиша 5|{{Серая клавиша|5}}]] [[Клавиша ÷|{{Серая клавиша|÷}}]] [[Клавиша 6|{{Серая клавиша|6}}]] [[Клавиша 7|{{Серая клавиша|7}}]] [[Клавиша -|{{Серая клавиша|−}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]
== Детали реализации ==
Слово COMPILE не просто само является компилирующим, оно ещё и помогает разрабатывать компилирующие слова.


== История ==
== История ==
Слово COMPILE взято в [[Каллисто|Каллисто 1.0]] из стандарта Forth 83, т.к. широко «засветилось» в русской литературе по Форту. Оно было исключено из стандарта ANS Forth в пользу слова POSTPONE, которое планируется к реализации в [[Каллисто 2.0]].
Слово COMPILE взято в [[Каллисто]] из стандарта Forth 83, т.к. широко «засветилось» в русской литературе по Форту. Оно было исключено из стандарта ANS Forth в пользу слова POSTPONE, которое планируется к реализации в [[Каллисто 2.0]].


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


== Реализация ==
== Реализация ==
Слово COMPILE не просто само является компилирующим, оно ещё и помогает разрабатывать компилирующие слова.
<pre>
3056 ;#COMPILE
3057 ; COMPILE          ( −− )                              Скомпилировать токен −− пару байт, следующих за COMPILE.
3058 ; Компиляция 16−битного слова, следующего за оператором. Обычно это токен (CFA).
3059 LCOMP:          .DB    7
3060                .TEXT  "COMPILE"
3061                .DW    LQLOAD                  ; ?COMP R> DUP 2+ >R U@ ,
3062 COMP:          .DW CALL, QCOMP, FROMR, DUP,TWOP,TOR, UAT, BRAN,RCOMMA
</pre>
Реализация из SP-Forth 4.20:
<pre>
: COMPILE ' POSTPONE LITERAL POSTPONE COMPILE, ; IMMEDIATE
</pre>
=== Советская реализация ===
Юрий Семёнов приводит следующее определение слова COMPILE (стр. 140):
Юрий Семёнов приводит следующее определение слова COMPILE (стр. 140):
   : COMPILE  ?COMP I R> 2+ >R @ , ;
   : COMPILE  ?COMP I R> 2+ >R @ , ;
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

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

Отменить Справка по редактированию (в новом окне)