TRUE: различия между версиями
AtH (обсуждение | вклад) |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 1: | Строка 1: | ||
'''TRUE''' («истина») — стандартная константа [[Каллисто]]. | '''TRUE''' («истина») — стандартная константа [[Каллисто]]. | ||
TRUE ( -- -1 ) Истина. Число -1. | TRUE ( -- -1 ) Истина. Число -1. | ||
[[Примитив]] TRUE кладёт на [[Стек данных|стек]] число -1. | [[Примитив]] TRUE кладёт на [[Стек данных|стек]] число -1. Хотя это стандартное значение для истины, надо помнить, что истиной также считается любое число, отличное от нуля. | ||
== Ввод слова TRUE == | == Ввод слова TRUE == | ||
Строка 62: | Строка 62: | ||
== Ссылки == | == Ссылки == | ||
* {{Исходник|True|TRUE}} | * {{Исходник|True|TRUE}} | ||
* См. слово [[FALSE]] | |||
* Слово [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 ''(англ.)'' |
Версия от 16:08, 6 июня 2016
TRUE («истина») — стандартная константа Каллисто.
TRUE ( -- -1 ) Истина. Число -1.
Примитив TRUE кладёт на стек число -1. Хотя это стандартное значение для истины, надо помнить, что истиной также считается любое число, отличное от нуля.
Ввод слова TRUE
В режиме ЛАТ нажмите 2 × 3 ИП
Детали реализации
Слово TRUE названо константой по его действию. В Каллисто оно не имеет отношения к порождающему слову CONSTANT и является примитивом. Такой подход делает исполняемый код короче и быстрее, а также ускоряет время компиляции программы — существенный плюс для Каллисто.
TRUE в стандарте ANS Forth
6.2.2298 TRUE CORE EXT ( -- true ) Возвращает флаг true, значение одна-ячейка со всеми установленными битами. См.: 3.1.3.1 Флаги. A.6.2.2298 TRUE TRUE эквивалентно фразе 0 0=.
История
Значение TRUE стало -1 в 1983 году, в этом виде и вошло в Каллисто. Если на Каллисто переносятся более древние программы, надо учитывать, что тогда значение истины в Форте равнялось единице.
Значение 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 в 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
- Слово TRUE и комментарий к нему в стандарте ANS Forth (англ.)
- Слово TRUE и комментарий к нему в черновике Forth 200x (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |