TRUE: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
 
(не показано 13 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''TRUE''' («истина») — стандартная константа [[Каллисто]].
'''TRUE''' («истина») — стандартная константа [[Каллисто]].
  TRUE          ( -- -1 )                      Истина. Число -1.
  TRUE          ( -- -1 )                      Истина. Число -1.
[[Файл:CallistoLogic.png|thumb|right|264px|Пример работы слова TRUE]]
[[Примитив]] TRUE кладёт на [[Стек данных|стек]] число -1. Хотя это стандартное значение для истины, надо помнить, что истиной в [[Каллисто]] также считается любое число, отличное от нуля.
[[Примитив]] TRUE кладёт на [[Стек данных|стек]] число -1. Хотя это стандартное значение для истины, надо помнить, что истиной в [[Каллисто]] также считается любое число, отличное от нуля.


== Ввод слова TRUE ==
== Ввод слова TRUE ==
В [[Режим ЛАТ|режиме ЛАТ]] нажмите [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]
В [[Режим ЛАТ|режиме ЛАТ]] нажмите [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша ×|{{Серая клавиша|×}}]] [[Клавиша 3|{{Серая клавиша|3}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]
== Детали реализации ==
Слово TRUE названо константой по его действию. В [[Каллисто]] оно не имеет отношения к порождающему слову [[CONSTANT]] и является [[примитив]]ом. Такой подход делает исполняемый код короче и быстрее, а также ускоряет время компиляции приложения — существенный плюс для [[Каллисто]].


== TRUE в стандарте ANS Forth ==
== TRUE в стандарте ANS Forth ==
Строка 23: Строка 21:


== История ==
== История ==
Значение TRUE стало -1 в 1983 году, в этом виде и вошло в [[Каллисто]]. Если на [[Каллисто]] переносятся более древние программы, надо учитывать, что тогда значение истины в Форте равнялось [[Слово 1|единице]].
Истина стала кодироваться числом -1 в 1983 году, в этом виде и вошло в [[Каллисто]]. Само слово TRUE стало стандартным для Форта в 1994 году.


Следы этого старого соглашения остались в [[Каллисто|Каллисто 1.0]] — см. слова [[DIGIT]], [[FINDN]].
Если на [[Каллисто]] переносятся более древние программы, надо учитывать, что до 1983 года значение истины в Форте равнялось [[Слово 1|единице]]. Следы этого старого соглашения остались в [[Каллисто|Каллисто 1.0]] — см. слова [[DIGIT]], [[FINDN]], [[(FIND)]].


=== Значение TRUE в Форте-83 ===
=== Значение TRUE в Форте-83 ===
Строка 44: Строка 42:


== Реализация ==
== Реализация ==
Формально слова TRUE в FORTH ИТЭФ не было, но в исходном тексте есть такие строчки:
Слово 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>
   ;        **  Стандартные слова  **
   ;        **  Стандартные слова  **
Строка 69: Строка 86:




{{нет иллюстраций}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Примитивы]]
[[Категория:Примитивы]]
[[Категория:Стандартные константы Каллисто]]
[[Категория:Стандартные константы Каллисто]]
[[Категория:Стандартные слова]]
[[Категория:1994 CORE EXT]]
[[Категория:2012 CORE EXT]]

Текущая версия от 17:17, 10 ноября 2017

TRUE («истина») — стандартная константа Каллисто.

TRUE           ( -- -1 )                       Истина. Число -1.
Пример работы слова TRUE

Примитив 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 в качестве булевского значения ИСТИНА.

Ссылки[править]