Текущая версия |
Ваш текст |
Строка 1: |
Строка 1: |
| '''TO''' (предлог «в», читается «ту») — стандартное слово [[Каллисто]]. Изменить значение десятичной величины. | | '''TO''' (предлог «в») — стандартное слово [[Каллисто]]. |
| TO ( x −− ) Запись x в десятичную величину или переменную действия.
| |
| [[Файл:CallistoValueTo.png|thumb|right|264px|Пример работы слова TO]]
| |
| Запись в десятичную величину, созданную порождающим словом [[VALUE]]. Слово TO употребляется непосредственно перед именем величины, через один или несколько пробелов.
| |
|
| |
|
| Также слово TO употребляется для изменения действия слов, созданных словом [[DEFER]].
| | Запись в десятичную переменную, созданную порождающим словом [[VALUE]]. Слово TO употребляется непосредственно перед именем переменной, через один или несколько пробелов. |
| | |
| == Ввод слова TO ==
| |
| В [[Режим ЛАТ|режиме ЛАТ]] последовательно нажмите две белые клавиши [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша 5|{{Серая клавиша|5}}]]
| |
|
| |
|
| == 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: |
Строка 32: |
| Типичное использование: | | Типичное использование: |
| 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 'N NAME> 2+ STATE @ IF , ELSE EXECUTE THEN ; |
| IMMEDIATE | | IMMEDIATE |
|
| |
|
| == Ссылка == | | == Ссылка == |
| * {{Исходник|TO|TO}}
| | * См. слова [[VALUE]] [[VARIABLE]] |
| * См. слова [[VALUE]], [[DEFER]], [[VARIABLE]] | | * [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.2.2295 Слово TO в стандарте ANS Forth] ''(англ.)'' и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.2.2295 комментарий к нему] ''(англ.)'' |
| * См. также статью [[Векторное поле кода]] | | * [http://forth.sourceforge.net/standard/dpans/dpans13.htm#13.6.1.2295 Слово TO в стандарте ANS Forth] ''(англ.)'' и [http://forth.sourceforge.net/standard/dpans/dpansa13.htm#A.13.6.1.2295 комментарий к нему] ''(англ.)'' (расширение LOCAL) |
| * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.2.2295 TO] и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.2.2295 комментарий к нему] в стандарте ANS Forth ''(англ.)''
| | * [http://www.forth200x.org/documents/html/core.html#core:TO Слово TO в черновике Forth 200x] ''(англ.)'' и [http://www.forth200x.org/documents/html/rationale.html#rat:core:TO комментарий к нему] ''(англ.)'' |
| * Слово [http://forth.sourceforge.net/standard/dpans/dpans13.htm#13.6.1.2295 TO] и [http://forth.sourceforge.net/standard/dpans/dpansa13.htm#A.13.6.1.2295 комментарий к нему] в стандарте ANS Forth, расширение LOCAL ''(англ.)'' | |
| * Слово [http://forth-standard.org/standard/core/TO TO] и [http://forth-standard.org/standard/rationale#rat:core:TO комментарий к нему] в черновике Forth 200x ''(англ.)'' | |
| * [https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D1%81%D0%B2%D0%B0%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 Присваивание в Википедии] | | * [https://ru.wikipedia.org/wiki/%D0%9F%D1%80%D0%B8%D1%81%D0%B2%D0%B0%D0%B8%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 Присваивание в Википедии] |
|
| |
|
|
| |
|
| | {{нет иллюстраций}} |
| {{заготовка}} | | {{заготовка}} |
| [[Категория:Слова Каллисто]] | | [[Категория:Слова Каллисто]] |
| [[Категория:Слова высокого уровня]] | | [[Категория:Слова Каллисто без стековых диаграмм]] |
| [[Категория:Слова с признаком IMMEDIATE]]
| |
| [[Категория:Стандартные слова]]
| |
| [[Категория:1994 CORE EXT]]
| |
| [[Категория:2012 CORE EXT]]
| |