Редактирование: 2+

Перейти к навигации Перейти к поиску
Внимание: Вы не вошли в систему. Ваш IP-адрес будет общедоступен, если вы запишете какие-либо изменения. Если вы войдёте или создадите учётную запись, её имя будет использоваться вместо IP-адреса, наряду с другими преимуществами.

Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.

Текущая версия Ваш текст
Строка 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+]]
Строка 8: Строка 8:


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


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


=== 2+ в предыдущем стандарте Forth-83 (англ.) ===
=== 2+ в предыдущем стандарте Forth-83 (англ.) ===
Строка 26: Строка 26:


== Реализация ==
== Реализация ==
<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+ в ядре ФОРТ-ЕС:
<PRE>
<PRE>
Пожалуйста, учтите, что любой ваш вклад в проект «ПМК вики» может быть отредактирован или удалён другими участниками. Если вы не хотите, чтобы кто-либо изменял ваши тексты, не помещайте их сюда.
Вы также подтверждаете, что являетесь автором вносимых дополнений, или скопировали их из источника, допускающего свободное распространение и изменение своего содержимого (см. Pmkwiki:Авторские права). НЕ РАЗМЕЩАЙТЕ БЕЗ РАЗРЕШЕНИЯ ОХРАНЯЕМЫЕ АВТОРСКИМ ПРАВОМ МАТЕРИАЛЫ!

В целях защиты вики от автоматического спама в правках просим вас решить следующую каптчу:

Отменить Справка по редактированию (в новом окне)
Источник — https://pmk.the-hacker.ru/2%2B