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

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

Ссылки


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.