0⟩: различия между версиями
AtH (обсуждение | вклад) (→Ссылки) |
AtH (обсуждение | вклад) |
||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 5: | Строка 5: | ||
== Ввод слова 0> == | == Ввод слова 0> == | ||
В [[Режим NUM|режиме NUM]] последовательно нажмите три клавиши [[Клавиша 0|{{Серая клавиша|0}}]] [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] | В [[Режим NUM|режиме NUM]] последовательно нажмите три клавиши [[Клавиша 0|{{Серая клавиша|0}}]] [[Клавиша F|{{Оранжевая клавиша|F}}]] [[Клавиша ИП|{{Чёрная клавиша|ИП}}]] | ||
== 0> в стандарте ANS Forth == | == 0> в стандарте ANS Forth == | ||
Строка 15: | Строка 12: | ||
== История == | == История == | ||
Удивительно, но это слово чуть «менее» стандартно, чем [[0⟨|0<]] — входящее в ядро CORE стандарта 1994 года и готовящегося стандарта Форта | |||
=== 0> в предыдущем стандарте Forth-83 (англ.) === | === 0> в предыдущем стандарте Forth-83 (англ.) === | ||
0> n -- flag 83 "zero-greater" | 0> n -- flag 83 "zero-greater" | ||
Строка 24: | Строка 23: | ||
== Реализация == | == Реализация == | ||
Слово 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> было [[примитив]]ом, вот его определение: | В FORTH ИТЭФ слово 0> было [[примитив]]ом, вот его определение: | ||
<PRE> | <PRE> | ||
Строка 50: | Строка 71: | ||
[[Категория:Одноместные операции Каллисто]] | [[Категория:Одноместные операции Каллисто]] | ||
[[Категория:Операции сравнения Каллисто]] | [[Категория:Операции сравнения Каллисто]] | ||
[[Категория:Стандартные слова]] | |||
[[Категория: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 (англ.)
У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их. |
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |