1+: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) |
AtH (обсуждение | вклад) |
||
(не показано 6 промежуточных версий этого же участника) | |||
Строка 2: | Строка 2: | ||
1+ ( x -- x1 ) Увеличить. x1 ← x + 1 | 1+ ( x -- x1 ) Увеличить. x1 ← x + 1 | ||
[[Файл:CallistoValue.png|thumb|right|264px|Пример работы слова 1+]] | [[Файл:CallistoValue.png|thumb|right|264px|Пример работы слова 1+]] | ||
Слово 1+ добавляет к вершине [[Стек данных|стека]] [[Слово 1|число 1]]. | |||
== Ввод слова 1+ == | == Ввод слова 1+ == | ||
Строка 29: | Строка 29: | ||
== Реализация == | == Реализация == | ||
<pre> | |||
1269 ; ∗∗ Арифметика ∗∗ | |||
1270 ; | |||
1271 ;#OnePlus | |||
1272 ; 1+ ( x −− x1 ) Увеличить. x1 := x+1 | |||
1273 LONEP: .DB 2 | |||
1274 .TEXT "1+" ; ( x −− x+1 ) | |||
1275 .DW LACCE | |||
1276 ONEP: .DW JONEP ; Прибавление 1. | |||
… | |||
1286 JONEP: 1 | |||
1287 NONEP: PKRM03 + PKM03 KGOTO9 | |||
</pre> | |||
Реализации из SP-Forth 4.20: | |||
<pre> | |||
\ ================================================================ | |||
\ Вычисления | |||
CODE 1+ ( n1|u1 -- n2|u2 ) \ 94 | |||
\ Прибавить 1 к n1|u1 и получить сумму u2|n2. | |||
LEA EAX, 1 [EAX] | |||
RET | |||
END-CODE | |||
</pre> | |||
<pre> | |||
CODE F1+ \ * | |||
FLD1 | |||
FADDP ST(1), ST | |||
RET | |||
END-CODE | |||
</pre> | |||
=== Советская реализация === | |||
У Баранова-Ноздрунова определение слова 1+ выглядит так (стр. 70): | У Баранова-Ноздрунова определение слова 1+ выглядит так (стр. 70): | ||
: 1+ ( A ---> A+1 ) 1 + ; | : 1+ ( A ---> A+1 ) 1 + ; | ||
Строка 69: | Строка 102: | ||
[[Категория:Арифметические операции Каллисто]] | [[Категория:Арифметические операции Каллисто]] | ||
[[Категория:Одноместные операции Каллисто]] | [[Категория:Одноместные операции Каллисто]] | ||
[[Категория:Стандартные слова]] | |||
[[Категория:1994 CORE]] | |||
[[Категория:2012 CORE]] |
Текущая версия от 17:41, 10 ноября 2017
1+ (увеличить, единицу прибавить, читается «один-плюс») — стандартное слово Каллисто. Прибавление 1.
1+ ( x -- x1 ) Увеличить. x1 ← x + 1
Слово 1+ добавляет к вершине стека число 1.
Ввод слова 1+[править]
В режиме NUM последовательно нажмите две белые клавиши 1 +
1+ в стандарте ANS Forth[править]
6.1.0290 1+ "one-plus" CORE ( n1|u1 -- n2|u2 ) Прибавляет один(1) к n1|u1 возвращает сумму n2|u2.
История[править]
В отличии от Форта, каллистянское слово 1+ способно увеличивать на 1 не только целые, но и числа с плавающей запятой.
1+ в предыдущем стандарте Forth-83 (англ.)[править]
1+ w1 -- w2 79 "one-plus" w2 is the result of adding one to w1 according to the operations of + .
1+ в стандарте Forth-79 (англ.)[править]
1+ n -- n+1 107 "one-plus" Increment n by one, according to the operation of + .
1+ в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]
1+ n1 --- n2 L1 Increment n1 by l.
Реализация[править]
1269 ; ∗∗ Арифметика ∗∗ 1270 ; 1271 ;#OnePlus 1272 ; 1+ ( x −− x1 ) Увеличить. x1 := x+1 1273 LONEP: .DB 2 1274 .TEXT "1+" ; ( x −− x+1 ) 1275 .DW LACCE 1276 ONEP: .DW JONEP ; Прибавление 1. … 1286 JONEP: 1 1287 NONEP: PKRM03 + PKM03 KGOTO9
Реализации из SP-Forth 4.20:
\ ================================================================ \ Вычисления CODE 1+ ( n1|u1 -- n2|u2 ) \ 94 \ Прибавить 1 к n1|u1 и получить сумму u2|n2. LEA EAX, 1 [EAX] RET END-CODE
CODE F1+ \ * FLD1 FADDP ST(1), ST RET END-CODE
Советская реализация[править]
У Баранова-Ноздрунова определение слова 1+ выглядит так (стр. 70):
: 1+ ( A ---> A+1 ) 1 + ;
Описание и определение слова 1+ в ядре ФОРТ-ЕС:
1+ W1->W2 УВЕЛИЧИТЬ W1 НА 1 17 Экран номер 17 ( 31.03.86 NEGATE ABS + - 1+ 1- 2+ 2- +! 1+! ) : 1+ ( W1->W2) 1 + ;
В FORTH ИТЭФ слово 1+ было примитивом, вот его определение:
; ** Арифметика ** HEAD 202Q,'1',253Q,ONEP ; 1+ POP AX INC AX PUSH AX NEXT
Ссылки[править]
- Исходный текст слова 1+ в Каллисто Классик 1.0
- См. слова +,1− и 2+
- См. символ +
- Инкремент на Википедии
- Слово 1+ (one-plus) в стандарте ANS Forth (англ.)
- Слово 1+ (one-plus) в черновике Forth 200x (англ.)
- ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ в книге Л.Броуди «Начальный курс программирования на языке Форт»
- The Philosophy of Fixed Point в книге Leo Brodie Starting Forth (англ.)
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |