0⟩: различия между версиями
AtH (обсуждение | вклад) (Новая страница: «'''0>''' — стандартное слово Каллисто. {{нет иллюстраций}} {{заготовка}} Категория:Слова К…») |
AtH (обсуждение | вклад) |
||
(не показано 40 промежуточных версий этого же участника) | |||
Строка 1: | Строка 1: | ||
'''0 | '''0>''' (нуля больше) — стандартное слово [[Каллисто]]. Проверить, положительное ли число. | ||
0> ( x -- f ) Проверка на положительность. | |||
Сравнивает x с нулём и засылает в [[Стек данных|стек]] флаг «истинно» (f=-1), если x>0 и флаг «ложно» (f=0), если x≤0. | |||
== Ввод слова 0> == | |||
В [[Режим NUM|режиме NUM]] последовательно нажмите три клавиши [[Клавиша 0|{{Серая клавиша|0}}]] [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] | |||
== 0> в стандарте ANS Forth == | |||
6.2.0280 0> "zero-greater" CORE EXT | |||
( n -- flag ) | |||
flag - true, если и только если n - больше нуля. | |||
== История == | |||
Удивительно, но это слово чуть «менее» стандартно, чем [[0⟨|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. | |||
<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=]] | |||
== Ссылки == | |||
* {{Исходник|ZeroMore|0>}} | |||
* См. слова [[⟩|>]], [[0=]] и [[0⟨|0<]] | |||
* См. также [[Символ с кодом 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] ''(англ.)'' | |||
{{нет иллюстраций}} | {{нет иллюстраций}} | ||
{{заготовка}} | {{заготовка}} | ||
[[Категория:Слова Каллисто]] | [[Категория:Слова Каллисто]] | ||
[[Категория:Примитивы]] | |||
[[Категория:Одноместные операции Каллисто]] | |||
[[Категория:Операции сравнения Каллисто]] | |||
[[Категория:Стандартные слова]] | |||
[[Категория: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 (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |