0⟩: различия между версиями
AtH (обсуждение | вклад) |
AtH (обсуждение | вклад) |
||
(не показано 27 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
'''0>''' (нуля больше) — стандартное слово [[Каллисто]]. | '''0>''' (нуля больше) — стандартное слово [[Каллисто]]. Проверить, положительное ли число. | ||
0> ( x -- f ) | 0> ( x -- f ) Проверка на положительность. | ||
Сравнивает x с нулём и засылает в [[Стек данных|стек]] флаг «истинно» (f=-1), если x>0 и флаг «ложно» (f=0), если x≤0. | Сравнивает x с нулём и засылает в [[Стек данных|стек]] флаг «истинно» (f=-1), если x>0 и флаг «ложно» (f=0), если x≤0. | ||
== | == Ввод слова 0> == | ||
В [[Режим NUM|режиме NUM]] последовательно нажмите три клавиши [[Клавиша 0|{{Серая клавиша|0}}]] [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] | |||
== 0> в стандарте ANS Forth == | == 0> в стандарте ANS Forth == | ||
Строка 12: | Строка 11: | ||
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> было [[примитив]]ом, вот его определение: | |||
<PRE> | |||
HEAD 202Q,'0',276Q,ZGRET ; 0> | |||
POP AX | |||
CMP AX, 0 | |||
JG TRUE | |||
JMP FALSE | |||
</PRE> | |||
Метки TRUE и FALSE см. в определении слова [[0=]] | |||
== Ссылки == | == Ссылки == | ||
* См. слова [[0=]] [[0⟨|0<]] | * {{Исходник|ZeroMore|0>}} | ||
* [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.2.0280 | * См. слова [[⟩|>]], [[0=]] и [[0⟨|0<]] | ||
* [http:// | * См. также [[Символ с кодом 62|символ >]] | ||
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.2.0280 0> (zero-greater)] в стандарте ANS Forth ''(англ.)'' | |||
* Слово [http://forth-standard.org/standard/core/Zeromore 0> (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] ''(англ.)'' | |||
Строка 29: | Строка 68: | ||
{{заготовка}} | {{заготовка}} | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Примитивы]] | |||
[[Категория:Одноместные операции Каллисто]] | [[Категория:Одноместные операции Каллисто]] | ||
[[Категория:Операции сравнения Каллисто]] | [[Категория:Операции сравнения Каллисто]] | ||
[[Категория: | [[Категория:Стандартные слова]] | ||
[[Категория:1994 CORE EXT]] | |||
[[Категория:2012 CORE EXT]] |
Текущая версия от 17:52, 13 ноября 2017
0> (нуля больше) — стандартное слово Каллисто. Проверить, положительное ли число.
0> ( x -- f ) Проверка на положительность.
Сравнивает x с нулём и засылает в стек флаг «истинно» (f=-1), если x>0 и флаг «ложно» (f=0), если x≤0.
Ввод слова 0>[править]
В режиме NUM последовательно нажмите три клавиши 0 F ИП
0> в стандарте ANS Forth[править]
6.2.0280 0> "zero-greater" CORE EXT ( n -- flag ) flag - true, если и только если n - больше нуля.
История[править]
Удивительно, но это слово чуть «менее» стандартно, чем 0< — входящее в ядро CORE стандарта 1994 года и готовящегося стандарта Форта
0> в предыдущем стандарте Forth-83 (англ.)[править]
0> n -- flag 83 "zero-greater" flag is true if n is greater than zero.
0> в стандарте Forth-79 (англ.)[править]
0> n -- flag 118 "zero-greater" True if n is greater than zero.
Реализация[править]
Слово 0> в качестве флага «истинно» возвращает -1, что позволяет использовать результат f в логических операция AND, OR, XOR и NOT. Разумеется, при этом другие аргументы этих операций тоже должны использовать -1 в качестве флага «истинно». Все слова Каллисто, возвращающие флаги, используют в качестве флага «истинно» -1.
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
Реализация из SP-Forth 4.20:
: 0> ( n -- flag ) \ 94 CORE EXT \ flag "истина" тогда и только тогда, когда n больше нуля 0 > ;
Советская реализация[править]
В FORTH ИТЭФ слово 0> было примитивом, вот его определение:
HEAD 202Q,'0',276Q,ZGRET ; 0> POP AX CMP AX, 0 JG TRUE JMP FALSE
Метки TRUE и FALSE см. в определении слова 0=
Ссылки[править]
- Исходный текст слова 0> в Каллисто Классик 1.0
- См. слова >, 0= и 0<
- См. также символ >
- Слово 0> (zero-greater) в стандарте ANS Forth (англ.)
- Слово 0> (zero-greater) в черновике Forth 200x (англ.)
- КОМПЬЮТЕР "ПРИНИМАЕТ РЕШЕНИЯ" в книге Л.Броуди «Начальный курс программирования на языке Форт»
- Decisions, Decisions… в книге Leo Brodie Starting Forth (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |