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

Материал из ПМК вики
Перейти к навигации Перейти к поиску
Нет описания правки
 
(не показано 9 промежуточных версий этого же участника)
Строка 1: Строка 1:
'''2+''' (увеличить на два, два прибавить, читается «два плюс») — стандартное слово [[Каллисто]]. Прибавление 2.
'''2+''' (увеличить на два, два прибавить, читается «два-плюс») — фортовское слово [[Каллисто]]. Прибавление 2.
  2+            ( x -- x1 )                    Прибавить два. x1 ← x + 2
  2+            ( x -- x1 )                    Прибавить два. x1 ← x + 2
[[Файл:CallistoTwo.png|thumb|right|264px|Пример работы слова 2+]]
[[Файл:CallistoTwo.png|thumb|right|264px|Пример работы слова 2+]]
Увеличить x на 2, а результат x1 занести в [[Стек данных|стек]].
Слово 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+ способно увеличивать на 2 не только целые, но и числа с плавающей запятой.
=== Советская реализация ===
 
== Реализация ==
Описание и определение слова 2+ в ядре ФОРТ-ЕС:
Описание и определение слова 2+ в ядре ФОРТ-ЕС:
<PRE>
<PRE>

Текущая версия от 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

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


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