TRUE: различия между версиями
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) |
||
(не показаны 24 промежуточные версии этого же участника) | |||
Строка 1: | Строка 1: | ||
'''TRUE''' («истина») — | '''TRUE''' («истина») — стандартная константа [[Каллисто]]. | ||
TRUE ( -- -1 ) Истина. Число -1. | TRUE ( -- -1 ) Истина. Число -1. | ||
[[Примитив]] TRUE кладёт на [[Стек данных|стек]] число -1. | [[Файл:CallistoLogic.png|thumb|right|264px|Пример работы слова TRUE]] | ||
[[Примитив]] TRUE кладёт на [[Стек данных|стек]] число -1. Хотя это стандартное значение для истины, надо помнить, что истиной в [[Каллисто]] также считается любое число, отличное от нуля. | |||
== Ввод слова TRUE == | == Ввод слова TRUE == | ||
В [[Режим ЛАТ|режиме ЛАТ]] нажмите [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] | В [[Режим ЛАТ|режиме ЛАТ]] нажмите [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] | ||
== TRUE в стандарте ANS Forth == | == TRUE в стандарте ANS Forth == | ||
Строка 23: | Строка 21: | ||
== История == | == История == | ||
Истина стала кодироваться числом -1 в 1983 году, в этом виде и вошло в [[Каллисто]]. Само слово TRUE стало стандартным для Форта в 1994 году. | |||
Если на [[Каллисто]] переносятся более древние программы, надо учитывать, что до 1983 года значение истины в Форте равнялось [[Слово 1|единице]]. Следы этого старого соглашения остались в [[Каллисто|Каллисто 1.0]] — см. слова [[DIGIT]], [[FINDN]], [[(FIND)]]. | |||
=== Значение TRUE в Форте-83 === | === Значение TRUE в Форте-83 === | ||
Строка 42: | Строка 42: | ||
== Реализация == | == Реализация == | ||
Слово TRUE названо константой по его действию. В [[Каллисто|Каллисто 1.0]] оно не имеет отношения к порождающему слову [[CONSTANT]] и является [[примитив]]ом. | |||
Слово TRUE занимает меньше места в [[Шитый код|шитом коде]], компилируется и исполняется быстрее, чем [[LITERAL|литерал]] -1. Поэтому его удобно использовать вместо числа -1, например TRUE p [[+!]] уменьшает [[VARIABLE|переменную]] p на единицу. | |||
<pre> | |||
2667 ;#TRUE | |||
2668 ; TRUE ( −− −1 ) Истина. Число −1. | |||
2669 LTRUE: .DB 4 | |||
2670 .TEXT "TRUE" | |||
2671 .DW LTWO | |||
2672 TRUE: .DW JTRUE | |||
2673 JTRUE: 1 +/− KM3 KGOTO9 | |||
</pre> | |||
Реализация из SP-Forth 4.20: | |||
<pre> | |||
-1 CONSTANT TRUE ( -- true ) \ 94 CORE EXT | |||
\ Вернуть флаг "истина", ячейку со всеми установленными битами. | |||
</pre> | |||
=== Советская реализация === | |||
Формально слова TRUE в FORTH ИТЭФ не было, но в его исходном тексте есть такие строчки: | |||
<PRE> | <PRE> | ||
; ** Стандартные слова ** | |||
; ** Условные операторы ** | |||
HEAD 202Q,'0',275Q,ZEQU ; 0= | |||
POP AX | |||
CMP AX, 0 | |||
JE TRUE | |||
FALSE: SUB AX, AX | |||
PUT: PUSH AX | |||
NEXT | |||
TRUE: MOV AX, 1 | |||
JMP PUT | |||
</PRE> | </PRE> | ||
ФОРТ-ЕС использовал -1 в качестве булевского значения ИСТИНА. | |||
== Ссылки == | == Ссылки == | ||
* {{Исходник|True|TRUE}} | * {{Исходник|True|TRUE}} | ||
* См. слова [[FALSE]], [[Слово 1|1]] и [[Слово 2|2]] | |||
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.2.2298 TRUE] и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.2.2298 комментарий к нему] в стандарте ANS Forth ''(англ.)'' | * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.2.2298 TRUE] и [http://forth.sourceforge.net/standard/dpans/dpansa6.htm#A.6.2.2298 комментарий к нему] в стандарте ANS Forth ''(англ.)'' | ||
* Слово [http://forth-standard.org/standard/core/TRUE TRUE] и [http://forth-standard.org/standard/rationale#rat:core:TRUE комментарий к нему] в черновике Forth 200x ''(англ.)'' | * Слово [http://forth-standard.org/standard/core/TRUE TRUE] и [http://forth-standard.org/standard/rationale#rat:core:TRUE комментарий к нему] в черновике Forth 200x ''(англ.)'' | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Примитивы]] | [[Категория:Примитивы]] | ||
[[Категория:Стандартные константы Каллисто]] | [[Категория:Стандартные константы Каллисто]] | ||
[[Категория:Стандартные слова]] | |||
[[Категория:1994 CORE EXT]] | |||
[[Категория:2012 CORE EXT]] |
Текущая версия от 17:17, 10 ноября 2017
TRUE («истина») — стандартная константа Каллисто.
TRUE ( -- -1 ) Истина. Число -1.
Примитив TRUE кладёт на стек число -1. Хотя это стандартное значение для истины, надо помнить, что истиной в Каллисто также считается любое число, отличное от нуля.
Ввод слова TRUE[править]
В режиме ЛАТ нажмите 2 × 3 ИП
TRUE в стандарте ANS Forth[править]
6.2.2298 TRUE CORE EXT ( -- true ) Возвращает флаг true, значение одна-ячейка со всеми установленными битами. См.: 3.1.3.1 Флаги. A.6.2.2298 TRUE TRUE эквивалентно фразе 0 0=.
История[править]
Истина стала кодироваться числом -1 в 1983 году, в этом виде и вошло в Каллисто. Само слово TRUE стало стандартным для Форта в 1994 году.
Если на Каллисто переносятся более древние программы, надо учитывать, что до 1983 года значение истины в Форте равнялось единице. Следы этого старого соглашения остались в Каллисто 1.0 — см. слова DIGIT, FINDN, (FIND).
Значение TRUE в Форте-83[править]
true A non-zero value represents the true state of a flag. Any non-zero value will be accepted by a standard word as 'true'; all standard words return a 16-bit value with all bits set to one when returning a 'true' flag.
Значение TRUE в Форте-79[править]
true A non-zero value represents the true condition flag. Any non- zero value will be accepted by a standard word as 'true'; all standard words return one when leaving a ' true' flag.
Реализация[править]
Слово TRUE названо константой по его действию. В Каллисто 1.0 оно не имеет отношения к порождающему слову CONSTANT и является примитивом.
Слово TRUE занимает меньше места в шитом коде, компилируется и исполняется быстрее, чем литерал -1. Поэтому его удобно использовать вместо числа -1, например TRUE p +! уменьшает переменную p на единицу.
2667 ;#TRUE 2668 ; TRUE ( −− −1 ) Истина. Число −1. 2669 LTRUE: .DB 4 2670 .TEXT "TRUE" 2671 .DW LTWO 2672 TRUE: .DW JTRUE 2673 JTRUE: 1 +/− KM3 KGOTO9
Реализация из SP-Forth 4.20:
-1 CONSTANT TRUE ( -- true ) \ 94 CORE EXT \ Вернуть флаг "истина", ячейку со всеми установленными битами.
Советская реализация[править]
Формально слова TRUE в FORTH ИТЭФ не было, но в его исходном тексте есть такие строчки:
; ** Стандартные слова ** ; ** Условные операторы ** HEAD 202Q,'0',275Q,ZEQU ; 0= POP AX CMP AX, 0 JE TRUE FALSE: SUB AX, AX PUT: PUSH AX NEXT TRUE: MOV AX, 1 JMP PUT
ФОРТ-ЕС использовал -1 в качестве булевского значения ИСТИНА.
Ссылки[править]
- Исходный текст слова TRUE в Каллисто Классик 1.0
- См. слова FALSE, 1 и 2
- Слово TRUE и комментарий к нему в стандарте ANS Forth (англ.)
- Слово TRUE и комментарий к нему в черновике Forth 200x (англ.)