1+: различия между версиями
Перейти к навигации
Перейти к поиску
AtH (обсуждение | вклад) |
AtH (обсуждение | вклад) |
||
(не показано 14 промежуточных версий этого же участника) | |||
Строка 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+ == | ||
Строка 12: | Строка 12: | ||
Прибавляет один(1) к n1|u1 возвращает сумму n2|u2. | Прибавляет один(1) к n1|u1 возвращает сумму n2|u2. | ||
== 1+ в предыдущем стандарте Forth-83 (англ.) == | == История == | ||
В отличии от Форта, каллистянское слово 1+ способно увеличивать на 1 не только целые, но и числа с плавающей запятой. | |||
=== 1+ в предыдущем стандарте Forth-83 (англ.) === | |||
1+ w1 -- w2 79 "one-plus" | 1+ w1 -- w2 79 "one-plus" | ||
w2 is the result of adding one to w1 according to the | w2 is the result of adding one to w1 according to the | ||
operations of + . | operations of + . | ||
== 1+ в стандарте Forth-79 (англ.) == | === 1+ в стандарте Forth-79 (англ.) === | ||
1+ n -- n+1 107 "one-plus" | 1+ n -- n+1 107 "one-plus" | ||
Increment n by one, according to the operation of + . | Increment n by one, according to the operation of + . | ||
== 1+ в fig-FORTH Release 1 glossary, май 1979 (англ.) == | === 1+ в fig-FORTH Release 1 glossary, май 1979 (англ.) === | ||
1+ n1 --- n2 L1 | 1+ n1 --- n2 L1 | ||
Increment n1 by l. | Increment n1 by l. | ||
== | == Реализация == | ||
<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 + ; | ||
Строка 40: | Строка 73: | ||
: 1+ ( W1->W2) 1 + ; | : 1+ ( W1->W2) 1 + ; | ||
</PRE> | |||
В FORTH ИТЭФ слово 1+ было [[примитив]]ом, вот его определение: | |||
<PRE> | |||
; ** Арифметика ** | |||
HEAD 202Q,'1',253Q,ONEP ; 1+ | |||
POP AX | |||
INC AX | |||
PUSH AX | |||
NEXT | |||
</PRE> | </PRE> | ||
== Ссылки == | == Ссылки == | ||
* {{Исходник|OnePlus|1+}} | |||
* См. слова [[Слово +|+]],[[1−]] и [[2+]] | * См. слова [[Слово +|+]],[[1−]] и [[2+]] | ||
* См. [[символ +]] | * См. [[символ +]] | ||
* [https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%BA%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D1%82 Инкремент на Википедии] | * [https://ru.wikipedia.org/wiki/%D0%98%D0%BD%D0%BA%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D1%82 Инкремент на Википедии] | ||
* Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0290 1+ (one-plus)] в стандарте ANS Forth ''(англ.)'' | * Слово [http://forth.sourceforge.net/standard/dpans/dpans6.htm#6.1.0290 1+ (one-plus)] в стандарте ANS Forth ''(англ.)'' | ||
* Слово [http:// | * Слово [http://forth-standard.org/standard/core/OnePlus 1+ (one-plus)] в черновике Forth 200x ''(англ.)'' | ||
* [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\05.OPERAZII%20NAD%20ZELYMI%20TISLAMI ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»] | * [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH\05.OPERAZII%20NAD%20ZELYMI%20TISLAMI ОПЕРАЦИИ НАД ЦЕЛЫМИ ЧИСЛАМИ] в книге [http://gudleifr.h1.ru/cgi-bin/pilo.cgi?FL=../g9.txt&IS=\6.PERWOISTOTNIKI\LEO%20BRODIE%20STARTING%20FORTH Л.Броуди «Начальный курс программирования на языке Форт»] | ||
* [http://www.forth.com/starting-forth/sf5/sf5.html The Philosophy of Fixed Point] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)'' | * [http://www.forth.com/starting-forth/sf5/sf5.html The Philosophy of Fixed Point] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)'' | ||
Строка 57: | Строка 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 (англ.)
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |