TO
TO (предлог «в», читается «ту») — стандартное слово Каллисто. Изменить значение десятичной величины.
TO ( x −− ) Запись x в десятичную величину или переменную действия.
Запись в десятичную величину, созданную порождающим словом VALUE. Слово TO употребляется непосредственно перед именем величины, через один или несколько пробелов.
Также слово TO употребляется для изменения действия слов, созданных словом DEFER.
Ввод слова TO[править]
В режиме ЛАТ последовательно нажмите две белые клавиши 2 5
TO в стандарте ANS Forth[править]
6.2.2295 TO CORE EXT Интерпретация: ( x "<spaces>name" -- ) Пропускает ведущие пробелы, и выделяет name, ограниченное пробелом. Сохраняет x в name. Неопределенная ситуация существует, если name не было определено через VALUE. Компиляция: ( "<spaces>name" -- ) Пропускает ведущие пробелы, и выделяет name, ограниченное пробелом. Добавляет семантику времени-выполнения, данную ниже к текущему определению. Неопределенная ситуация существует, если name не было определено через VALUE. Время-выполнения: ( x -- ) Сохраняет x в name. Примечание: Неопределенная ситуация существует, если POSTPONE или [COMPILE], применяется к TO. См.: 6.2.2405 VALUE, 13.6.1.2295 TO. A.6.2.2295 TO Исторически, некоторые реализации TO не имеют явного выделения имени. Вместо этого они устанавливают флаг режима, который проверяется последующим выполнением имени. ANS Forth явно требует, чтобы TO выделял имя, так чтобы эффект TO был предсказуем, когда он используется в конце области анализа. Типичное использование: x TO name
Реализация[править]
В Каллисто 1.0 предусмотрена возможность самостоятельной разработки порождающих слов, использующих стандартное слово TO, без перекомпиляции транслятора. Реализация такой возможности в стандартную поставку не включена. Разработчикам предоставлена возможность самостоятельно продумать удобный синтаксис для таких порождающих слов и реализовать его.
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
Реализации из SP-Forth 4.20:
: (TO) ALSO TC-WL ' 9 + STATE @ IF COMPILE, ELSE [ ALSO TC ] EXECUTE [ PREVIOUS ] THEN PREVIOUS ; IMMEDIATE
: TO ALSO TC-WL [COMPILE] TO PREVIOUS ; IMMEDIATE
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
Советская реализация[править]
У Баранова-Ноздрунова приводится следующее описание слова TO (стр. 97):
: TO ' 2+ STATE @ IF , ELSE EXECUTE THEN ; IMMEDIATE
Ссылка[править]
- Исходный текст слова TO в Каллисто Классик 1.0
- См. слова VALUE, DEFER, VARIABLE
- См. также статью Векторное поле кода
- Слово TO и комментарий к нему в стандарте ANS Forth (англ.)
- Слово TO и комментарий к нему в стандарте ANS Forth, расширение LOCAL (англ.)
- Слово TO и комментарий к нему в черновике Forth 200x (англ.)
- Присваивание в Википедии
![]() |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |