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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показана 31 промежуточная версия этого же участника)
Строка 1: Строка 1:
'''2+''' (два прибавить) — стандартное слово [[Каллисто]]. Прибавление 2.
'''2+''' (увеличить на два, два прибавить, читается «два-плюс») — фортовское слово [[Каллисто]]. Прибавление 2.
  2+            ( x -- x1 )
  2+            ( x -- x1 )                     Прибавить два. x1 ← x + 2
Прибавляет 2 к x, а результат x1 заносит в [[Стек данных|стек]].
[[Файл:CallistoTwo.png|thumb|right|264px|Пример работы слова 2+]]
Слово 2+ увеличивает на 2 число, находящееся на вершине [[Стек данных|стека]].


== Ввод слова 2+ ==
== Ввод слова 2+ ==
В [[Режим NUM|режиме NUM]] последовательно нажмите клавиши [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша +|{{Серая клавиша|+}}]]
В [[Режим NUM|режиме NUM]] последовательно нажмите две белые клавиши [[Клавиша 2|{{Серая клавиша|2}}]] [[Клавиша +|{{Серая клавиша|+}}]]


== 2+ в предыдущем стандарте Forth-83 (англ.) ==
== История ==
Слово 2+ присутствовало в стандартах Форта до 1994 года. Слово 2+ просто в реализации и, несмотря на своё отсутствие в ANS Forth, по-прежнему присутствует в большинстве реализаций Форта.
 
Первое найденное упоминание о слове 2+ датируется 1979 годом. В отличии от Форта, каллистянское слово 2+ способно увеличивать на 2 не только целые, но и числа с плавающей запятой.
 
=== 2+ в предыдущем стандарте Forth-83 (англ.) ===
       2+          w1 -- w2                      79          "two-plus"
       2+          w1 -- w2                      79          "two-plus"
           w2 is the result of adding two to w1 according to the
           w2 is the result of adding two to w1 according to the
           operation of + .
           operation of + .


 
=== 2+ в стандарте Forth-79 (англ.) ===
== 2+ в стандарте Forth-79 (англ.) ==
  2+            n -- n+2                      135        "two-plus"
  2+            n -- n+2                      135        "two-plus"
     Increment n by two, according to the operation of + .
     Increment n by two, according to the operation of + .


 
=== 2+ в fig-FORTH Release 1 glossary, май 1979 (англ.) ===
== 2+ в fig-FORTH Release 1 glossary, май 1979 (англ.) ==
  2+            n1  ---  n2
  2+            n1  ---  n2
         Leave n1 incremented by 2.
         Leave n1 incremented by 2.


== История ==
== Реализация ==
Слово 2+ присутствовало в Форте-83, но убрано из стандартов ANS и из черновика Форта-2012. Несмотря на это, 2+ по-прежнему присутствует в большинстве реализаций Форта.
<pre>
1278 ;#TwoPlus
1279 ; 2+              ( x −− x1 )                          Прибавить два. x1 := x+2
1280 LTWOP:          .DB    2
1281                .TEXT  "2+"                    ; ( x −− x+2 )
1282                .DW    LONEP
1283 TWOP:          .DW    JTWOP                  ; Прибавление 2.
1284 JTWOP:          2
1285                .DB 59H                        ; FX>=0 aka пропустить 1 байт
1286 JONEP:          1
1287 NONEP:          PKRM03 + PKM03  KGOTO9
</pre>
Реализации из SP-Forth 4.20:
<pre>
CODE 2+ ( W -> W+2 )
    LEA EAX, 2 [EAX]
    RET
END-CODE
: 2+ 2 + ;
</pre>
 
=== Советская реализация ===
Описание и определение слова 2+ в ядре ФОРТ-ЕС:
<PRE>
2+          W1->W2 УВЕЛИЧИТЬ W1 НА 2                          17
 
                    Экран номер 17
( 31.03.86  NEGATE ABS + - 1+ 1- 2+ 2- +!  1+!  )
 
: 2+ ( W1->W2)  2 + ;
</PRE>
 
В FORTH ИТЭФ слово 2+ было [[примитив]]ом, вот его определение:
<PRE>
            HEAD    202Q,'2',253Q,TWOP                  ; 2+
            POP  AX
            ADD  AX, 2
            PUSH  AX
            NEXT
</PRE>


== Ссылки ==
== Ссылки ==
* См. слова [[1+]] [[BODY〉|BODY&gt;]] [[2×]] [[]] [[2/]]
* {{Исходник|TwoPlus|2+}}
* См. слова [[Слово +|+]], [[1+]], [[2−]], [[2×]] и [[2/]]
* См. также [[символ +]]
* [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] ''(англ.)''




{{нет иллюстраций}}
{{заготовка}}
{{заготовка}}
[[Категория:Слова Каллисто]]
[[Категория:Слова Каллисто]]
[[Категория:Примитивы]]
[[Категория:Арифметические операции Каллисто]]
[[Категория:Арифметические операции Каллисто]]
[[Категория:Одноместные операции Каллисто]]
[[Категория:Одноместные операции Каллисто]]
[[Категория:Описание бета-версии Каллисто]]

Текущая версия от 18:13, 13 ноября 2017

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

2+             ( x -- x1 )                     Прибавить два. x1 ← x + 2
Пример работы слова 2+

Слово 2+ увеличивает на 2 число, находящееся на вершине стека.

Ввод слова 2+[править]

В режиме NUM последовательно нажмите две белые клавиши  2   + 

История[править]

Слово 2+ присутствовало в стандартах Форта до 1994 года. Слово 2+ просто в реализации и, несмотря на своё отсутствие в ANS Forth, по-прежнему присутствует в большинстве реализаций Форта.

Первое найденное упоминание о слове 2+ датируется 1979 годом. В отличии от Форта, каллистянское слово 2+ способно увеличивать на 2 не только целые, но и числа с плавающей запятой.

2+ в предыдущем стандарте Forth-83 (англ.)[править]

     2+           w1 -- w2                      79          "two-plus"
          w2 is the result of adding two to w1 according to the
          operation of + .

2+ в стандарте Forth-79 (англ.)[править]

2+             n -- n+2                      135         "two-plus"
    Increment n by two, according to the operation of + .

2+ в fig-FORTH Release 1 glossary, май 1979 (англ.)[править]

2+            n1  ---  n2
       Leave n1 incremented by 2.

Реализация[править]

1278 ;#TwoPlus
1279 ; 2+               ( x −− x1 )                          Прибавить два. x1 := x+2
1280 LTWOP:          .DB     2
1281                 .TEXT   "2+"                    ; ( x −− x+2 )
1282                 .DW     LONEP
1283 TWOP:           .DW     JTWOP                   ; Прибавление 2.
1284 JTWOP:          2
1285                 .DB 59H                         ; FX>=0 aka пропустить 1 байт
1286 JONEP:          1
1287 NONEP:          PKRM03 + PKM03  KGOTO9

Реализации из SP-Forth 4.20:

CODE 2+ ( W -> W+2 )
     LEA EAX, 2 [EAX]
     RET
END-CODE
…
: 2+ 2 + ;

Советская реализация[править]

Описание и определение слова 2+ в ядре ФОРТ-ЕС:

2+           W1->W2 УВЕЛИЧИТЬ W1 НА 2                          17

                     Экран номер 17
( 31.03.86   NEGATE ABS + - 1+ 1- 2+ 2- +!  1+!  )

: 2+ ( W1->W2)  2 + ;

В FORTH ИТЭФ слово 2+ было примитивом, вот его определение:

             HEAD    202Q,'2',253Q,TWOP                   ; 2+
             POP   AX
             ADD   AX, 2
             PUSH  AX
             NEXT

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


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