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

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

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

Текущая версия Ваш текст
Строка 1: Строка 1:
[[Файл:CallistoValueTo.png|thumb|right|264px|Пример работы слова TO]]
'''TO''' (предлог «в», читается «ту») — стандартное слово [[Каллисто]]. Изменить значение десятичной величины.
'''TO''' (предлог «в», читается «ту») — стандартное слово [[Каллисто]]. Изменить значение десятичной величины.
TO            ( x −− )                            Запись x в десятичную величину или переменную действия.
 
[[Файл:CallistoValueTo.png|thumb|right|264px|Пример работы слова TO]]
Запись в десятичную величину, созданную порождающим словом [[VALUE]]. Слово TO употребляется непосредственно перед именем величины, через один или несколько пробелов.
Запись в десятичную величину, созданную порождающим словом [[VALUE]]. Слово TO употребляется непосредственно перед именем величины, через один или несколько пробелов.


Строка 10: Строка 10:


== TO в стандарте ANS Forth ==
== TO в стандарте ANS Forth ==
<pre>
  6.2.2295  TO                                                          CORE EXT
  6.2.2295  TO                                                          CORE EXT
         Интерпретация: ( x "<spaces>name" -- )
         Интерпретация: ( x "<spaces>name" -- )
Строка 39: Строка 38:
  Типичное использование:
  Типичное использование:
         x TO name
         x TO name
</pre>
== Реализация ==
В [[Каллисто|Каллисто 1.0]] предусмотрена возможность самостоятельной разработки порождающих слов, использующих стандартное слово TO, без перекомпиляции транслятора. Реализация такой возможности в стандартную поставку не включена. Разработчикам предоставлена возможность самостоятельно продумать удобный синтаксис для таких порождающих слов и реализовать его.
<pre>
3342 ;#TO
3343 ; TO            I ( x −− )                            Записать x в десятичную величину или переменную действия.
3344 LTO:            .DB    82H
3345                .TEXT  "TO"                    ; ( x "<пр>имя" −− )
3346                .DW    LBCOM
3347 TO:            .DW CALL, BL,WORD, FIND, ZEQU, ZERO,QERR, DROP, N2PFA, TWOP
3348                .DW STATE,UAT, ZBRAN,TO1, COMMA, EXIT
3349 TO1:            .DW EXEC, EXIT
</pre>
Реализации из SP-Forth 4.20:
<pre>
: (TO)
  ALSO TC-WL '
  9 + STATE @
  IF COMPILE, ELSE [ ALSO TC ] EXECUTE [ PREVIOUS ] THEN
  PREVIOUS
; IMMEDIATE
</pre>
<pre>
: TO ALSO TC-WL [COMPILE] TO PREVIOUS ; IMMEDIATE
</pre>
<pre>
0 VALUE TOVALUE-CODE
: TO \ 94 CORE EXT
\ Интерпретация: ( x "<spaces>name" -- )
\ Пропустить ведущие пробелы и выделить name, ограниченное пробелом.
\ Записать x в name. Неопределенная ситуация возникает, если name не
\ определено через VALUE.
\ Компиляция: ( "<spaces>name" -- )
\ Пропустить ведущие пробелы и выделить name, ограниченное пробелом.
\ Добавить семантику времени выполнения, данную ниже, к текущему определению.
\ Неопределенная ситуация возникает, если name не определено через VALUE.
\ Время выполнения: ( x -- )
\ Записать x в name.
\ Примечание: Неопределенная ситуация возникает, если POSTPONE или [COMPILE]
\ применяются к TO.
  '
  9 + STATE @
  IF COMPILE, ELSE EXECUTE THEN
; IMMEDIATE
</pre>


=== Советская реализация ===
== Реализация TO ==
У Баранова-Ноздрунова приводится следующее описание слова TO (стр. 97):
У Баранова-Ноздрунова приводится следующее описание слова TO (стр. 97):
   : TO  ' 2+ STATE @ IF , ELSE EXECUTE THEN ;
   : TO  ' 2+ STATE @ IF , ELSE EXECUTE THEN ;
Строка 93: Строка 45:


== Ссылка ==
== Ссылка ==
* {{Исходник|TO|TO}}
* См. слова [[VALUE]], [[DEFER]], [[VARIABLE]]
* См. слова [[VALUE]], [[DEFER]], [[VARIABLE]]
* См. также статью [[Векторное поле кода]]
* См. также статью [[Векторное поле кода]]
Строка 106: Строка 57:
[[Категория:Слова высокого уровня]]
[[Категория:Слова высокого уровня]]
[[Категория:Слова с признаком IMMEDIATE]]
[[Категория:Слова с признаком IMMEDIATE]]
[[Категория:Стандартные слова]]
[[Категория:Слова Каллисто без стековых диаграмм]]
[[Категория:1994 CORE EXT]]
[[Категория:2012 CORE EXT]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

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

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