1+: различия между версиями

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показана 21 промежуточная версия этого же участника)
Строка 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 к x и кладёт на [[Стек данных|стек]] результат x1.
Слово 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.


== Реализация 1+ ==
== Реализация ==
<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  +  ;


== История ==
Описание и определение слова 1+ в ядре ФОРТ-ЕС:
Каллистянское слово 1+ способно увеличивать на 1 не только целые, но и числа с плавающей запятой.
<PRE>
1+          W1->W2 УВЕЛИЧИТЬ W1 НА 1                          17
 
                    Экран номер 17
( 31.03.86  NEGATE ABS + - 1+ 1- 2+ 2- +!  1+!  )
 
: 1+ ( W1->W2) 1 + ;
</PRE>
 
В FORTH ИТЭФ слово 1+ было [[примитив]]ом, вот его определение:
<PRE>
  ;        ** Арифметика **
 
            HEAD    202Q,'1',253Q,ONEP                  ; 1+
            POP  AX
            INC  AX
            PUSH  AX
            NEXT
</PRE>


== Ссылки ==
== Ссылки ==
* См. слова [[1−]] [[2+]]
* {{Исходник|OnePlus|1+}}
* См. слова [[Слово +|+]],[[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://www.forth200x.org/documents/html3/core/OnePlus.html 1+ (one-plus)] в черновике Forth 200x ''(англ.)''
* Слово [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://www.forth.com/starting-forth/sf5/sf5.html The Philosophy of Fixed Point] в книге [http://www.forth.com/starting-forth/ Leo Brodie Starting Forth] ''(англ.)''




Строка 44: Строка 102:
[[Категория:Арифметические операции Каллисто]]
[[Категория:Арифметические операции Каллисто]]
[[Категория:Одноместные операции Каллисто]]
[[Категория:Одноместные операции Каллисто]]
[[Категория:Описание бета-версии Каллисто]]
[[Категория:Стандартные слова]]
[[Категория:1994 CORE]]
[[Категория:2012 CORE]]

Текущая версия от 17:41, 10 ноября 2017

1+ (увеличить, единицу прибавить, читается «один-плюс») — стандартное слово Каллисто. Прибавление 1.

1+             ( x -- x1 )                     Увеличить. x1 ← x + 1
Пример работы слова 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

Ссылки[править]


  Это заготовка статьи. Вы можете помочь проекту, дополнив её.