Редактирование: Стековая нотация
Перейти к навигации
Перейти к поиску
Правка может быть отменена. Пожалуйста, просмотрите сравнение версий ниже, чтобы убедиться, что это нужная вам правка, и запишите страницу ниже, чтобы отменить правку.
Текущая версия | Ваш текст | ||
Строка 1: | Строка 1: | ||
'''Стековая нотация''' — минимальное требование к документированию слова [[Каллисто]], размером в одну строку. Пример | '''Стековая нотация''' — минимальное требование к документированию слова [[Каллисто]], размером в одну строку. Пример стековой нотации: | ||
+ ( | + ( x1 x2 -- x3 ) Сложение. x3 ← x1 + x2 | ||
Слева | Слева стоит слово [[Каллисто]], которое документируется. В данном случае это слово, состоящее из одного символа "+". | ||
Далее, в скобках, | Далее, в скобках, описаны состояния стека до и после выполнения слова, разделённые символами "--". По принятому соглашению вершина стека находится справа. Всё, находящееся в стеке до указанных элементов, остаётся неизменным. | ||
Мы видим, что до выполнения слова "+" на стеке находилось два десятичных числа x1 и x2. Слово "+" убрало из стека верхнее из этих чисел, а нижнее заменило на x3. Если слово не меняет стек, | Мы видим, что до выполнения слова "+" на стеке находилось два десятичных числа x1 и x2. Слово "+" убрало из стека верхнее из этих чисел, а нижнее заменило на x3. Если слово не меняет стек, стековая нотация выглядит вот так: | ||
DEGREES ( -- ) Градусы. | DEGREES ( -- ) Градусы. | ||
Стековая нотация завершается кратким названием слова, с возможным описанием его работы в свободном формате. | |||
== Обозначение типа | == Обозначение типа в стековой нотации == | ||
x y любой элемент стека (десятичное число) | |||
p неотрицательное десятичное число | |||
n целое число | |||
u неотрицательное целое число | |||
a адрес в единой адресации, целое число от 0 до 19999 включительно | |||
i 32-битное целое число в дополнительном коде | |||
f флаг: −1 «истина», 0 «ложь» | |||
Если в стековую нотацию входит несколько различных чисел данного типа, к букве может добавляться цифра, например x1 x2 x3 | |||
Одинаковые вхождения обозначения типа означают одно и тоже число, например: | |||
Одинаковые вхождения | |||
↑ ( x -- x x ) Дублировать. | ↑ ( x -- x x ) Дублировать. | ||
2DUP ( | 2DUP ( x1 x2 -- x1 x2 x1 x2 ) Дублировать пару чисел. | ||
{{заготовка}} | {{заготовка}} | ||
[[Категория:Каллисто]] | [[Категория:Каллисто]] |