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

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

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

Текущая версия Ваш текст
Строка 1: Строка 1:
'''COMPILE''' (компилировать, скомпилировать) — фортовское слово [[Каллисто]]. Скомпилировать [[CFA|токен]].
'''COMPILE''' (компилировать, скомпилировать) — стандартное слово [[Каллисто]].
COMPILE        ( −− )                              Скомпилировать 16−битное слово, следующее за оператором.
Слово COMPILE [[Слово ,|компилирует]] (т.е. добавляет) на вершину словаря 16-битное значение, следующее в [[Шитый код|шитом коде]] непосредственно за [[CFA|токеном]] COMPILE. Обычно это [[CFA|токен]] другого слова.


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


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


=== COMPILE в предыдущем стандарте Forth-83 (англ.) ===
== COMPILE в предыдущем стандарте Forth-83 (англ.) ==
       COMPILE      --                            C,83
       COMPILE      --                            C,83
           Typically used in the form:
           Typically used in the form:
Строка 18: Строка 15:
           See:  "compilation"
           See:  "compilation"


=== COMPILE в стандарте Forth-79 (англ.) ===
 
== COMPILE в стандарте Forth-79 (англ.) ==
  COMPILE                                      C,146
  COMPILE                                      C,146
     When  a  word containing COMPILE executes,  the  16-bit  value
     When  a  word containing COMPILE executes,  the  16-bit  value
Строка 26: Строка 24:
           COMPILE  [ 0 , ]  will copy zero.
           COMPILE  [ 0 , ]  will copy zero.


=== COMPILE в fig-FORTH Release 1 glossary, май 1979 (англ.) ===
 
== COMPILE в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
  COMPILE                                        C2
  COMPILE                                        C2
         When the word containing COMPILE executes, the execution address of
         When the word containing COMPILE executes, the execution address of
Строка 34: Строка 33:
         interpreter already does).
         interpreter already does).


== Реализация ==
Слово 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 ==
Юрий Семёнов приводит следующее определение слова COMPILE (стр. 140):
Юрий Семёнов приводит следующее описание слова COMPILE (стр. 140):
   : COMPILE  ?COMP I R> 2+ >R @ , ;
   : COMPILE  ?COMP I R> 2+ >R @ , ;


У Баранова-Ноздрунова приводится следующее определение слова COMPILE (стр. 54):
У Баранова-Ноздрунова приводится следующее описание слова COMPILE (стр. 54):
   : COMPILE  ( ---> )    I @ ,  R> 2+ >R  ;
   : COMPILE  ( ---> )    I @ ,  R> 2+ >R  ;


Описание и определение слова COMPILE в ядре ФОРТ-ЕС:
== История ==
<PRE>
Слово из стандарта Forth 83. Было исключено из стандарта ANS Forth в пользу слова POSTPONE.
COMPILE  К-> КОМПИЛИРОВАТЬ СЛЕДУЮЩИЙ АДРЕС                    22
 
                    Экран номер 22
( 31.03.86  FILL ERASE BLANK COMPILE [ ] MIN MAX HEX DECIMAL)
 
: COMPILE ( -> ) R> DUP 2+ >R @ , ;
</PRE>
Определение слова COMPILE в FORTH ИТЭФ:
<PRE>
            HEAD    207Q,'COMPIL',305Q,COMP,$COL        ; COMPILE
  ; Компиляция исполнительного адреса, следующего за оператором
            DW  QCOMP,I,FROMR,TWOP,TOR,AT,COMMA,SEMI
</PRE>
 
== Ссылки ==
* {{Исходник|COMPILE|COMPILE}}
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\11.RASSIRENIE%20KOMPILATORA:%20OPREDELAUSIE%20I%20KOMPILIRUUSIE%20SLOWA РАСШИРЕНИЕ КОМПИЛЯТОРА: ОПРЕДЕЛЯЮЩИЕ И КОМПИЛИРУЮЩИЕ СЛОВА] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»]




Строка 81: Строка 48:
{{заготовка}}
{{заготовка}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Слова высокого уровня]]
[[Категория:Работа со словарём Каллисто]]
[[Категория:Работа со словарём Каллисто]]
[[Категория:Компилирующие слова]]
[[Категория:Фортовские слова]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

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

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