Редактирование: 0⟩

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 1: Строка 1:
'''0>''' (нуля больше) — стандартное слово [[Каллисто]]. Проверить, положительное ли число.
'''0>''' (нуля больше) — стандартное слово [[Каллисто]]. Проверка, положительное ли число.
  0>            ( x -- f )                     Проверка на положительность.
  0>            ( x -- f )
Сравнивает x с нулём и засылает в [[Стек данных|стек]] флаг «истинно» (f=-1), если x>0 и флаг «ложно» (f=0), если x≤0.


== Ввод слова 0> ==
Сравнивает x с нулём и засылает в стек флаг «истинно» (f=-1), если x>0 и флаг «ложно» (f=0), если x≤0.
В [[Режим NUM|режиме NUM]] последовательно нажмите три клавиши [[Клавиша 0|{{Серая клавиша|0}}]]   [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]]
 
== Детали реализации ==
Слова Каллисто возвращают -1 в качестве флага «истинно», что позволяет использовать результат слова 0> в логических операция [[AND]], [[OR]], [[XOR]] и [[INVERT]]. Разумеется, при этом другие аргументы этих операций тоже должны использовать -1 в качестве флага «истинно».


== 0> в стандарте ANS Forth ==
== 0> в стандарте ANS Forth ==
Строка 11: Строка 12:
             flag - true, если и только если n - больше нуля.
             flag - true, если и только если n - больше нуля.


== История ==
== 0> в предыдущем стандарте Forth-83 (англ.) ==
Удивительно, но это слово чуть «менее» стандартно, чем [[0⟨|0<]] — входящее в ядро CORE стандарта 1994 года и готовящегося стандарта Форта
 
=== 0> в предыдущем стандарте Forth-83 (англ.) ===
       0>          n -- flag                    83      "zero-greater"
       0>          n -- flag                    83      "zero-greater"
           flag is true if n is greater than zero.
           flag is true if n is greater than zero.


=== 0> в стандарте Forth-79 (англ.) ===
== 0> в стандарте Forth-79 (англ.) ==
  0>            n -- flag                    118    "zero-greater"
  0>            n -- flag                    118    "zero-greater"
     True if n is greater than zero.
     True if n is greater than zero.
== Реализация ==
Слово 0> в качестве флага «истинно» возвращает -1, что позволяет использовать результат f в логических операция [[AND]], [[OR]], [[XOR]] и [[NOT]]. Разумеется, при этом другие аргументы этих операций тоже должны использовать -1 в качестве флага «истинно». Все слова [[Каллисто]], возвращающие флаги, используют в качестве флага «истинно» -1.
<pre>
877 STF:            Cx PKM03  KGOTO9                ; [SP] := 0; NEXT
878
879 ;#ZeroMore
880 ; 0>              ( x −− f )                          Проверить на положительность.
881 LZGRET:        .DB    2
882                .TEXT  "0>"                    ; ( x −− флаг )
883                .DW    LZEQU
884 ZGRET:          .DW    JZGRET
885 JZGRET:        PKRM03 +/−  PX<0 STF
886 STT:            1 +/− PKM03  KGOTO9            ; [SP] := −1; NEXT
</pre>
Реализация из SP-Forth 4.20:
<pre>
: 0> ( n -- flag ) \ 94 CORE EXT
\ flag "истина" тогда и только тогда, когда n больше нуля
  0 >
;
</pre>
=== Советская реализация ===
В FORTH ИТЭФ слово 0&gt; было [[примитив]]ом, вот его определение:
<PRE>
            HEAD    202Q,'0',276Q,ZGRET                  ; 0>
            POP  AX
            CMP  AX, 0
            JG    TRUE
            JMP  FALSE
</PRE>
Метки TRUE и FALSE см. в определении слова [[0=]]


== Ссылки ==
== Ссылки ==
* {{Исходник|ZeroMore|0&gt;}}
* См. слова [[0=]] [[0⟨|0&lt;]]
* См. слова [[⟩|&gt;]], [[0=]] и [[0⟨|0&lt;]]
* [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.2.0280 Слово 0&gt; (zero-greater) в стандарте ANS Forth] ''(англ.)''
* См. также [[Символ с кодом 62|символ &gt;]]
* [http://www.forth200x.org/documents/html/core.html#core:0more Слово 0&gt; (zero-greater) в черновике Forth 200x] ''(англ.)''
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.2.0280 0&gt; (zero-greater)] в стандарте ANS Forth ''(англ.)''
* Слово [http://forth-standard.org/standard/core/Zeromore 0&gt; (zero-greater)] в черновике Forth 200x ''(англ.)''
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\04.%20KOMPJUTER%20%22PRINIMAET%20RESENIA%22 КОМПЬЮТЕР "ПРИНИМАЕТ РЕШЕНИЯ"] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»]
* [http://www.forth.com/starting-forth/sf4/sf4.html Decisions, Decisions…] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''




Строка 68: Строка 29:
{{заготовка}}
{{заготовка}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Примитивы]]
[[Категория:Одноместные операции Каллисто]]
[[Категория:Одноместные операции Каллисто]]
[[Категория:Операции сравнения Каллисто]]
[[Категория:Операции сравнения Каллисто]]
[[Категория:Стандартные слова]]
[[Категория:Описание бета-версии Каллисто]]
[[Категория:1994 CORE EXT]]
[[Категория:2012 CORE EXT]]
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)
Источник — https://pmk.the-hacker.ru/0⟩