Стековая нотация: различия между версиями
AtH (обсуждение | вклад) Нет описания правки |
AtH (обсуждение | вклад) Нет описания правки |
||
Строка 6: | Строка 6: | ||
Далее, в скобках, описаны состояния стека до и после выполнения слова, разделённые символами "--". По принятому соглашению вершина стека находится справа. Всё, находящееся в стеке до указанных элементов, остаётся неизменным. | Далее, в скобках, описаны состояния стека до и после выполнения слова, разделённые символами "--". По принятому соглашению вершина стека находится справа. Всё, находящееся в стеке до указанных элементов, остаётся неизменным. | ||
Мы видим, что до выполнения слова "+" на стеке находилось два десятичных числа x1 и x2. Слово "+" убрало из стека верхнее из этих чисел, а нижнее заменило на x3. | Мы видим, что до выполнения слова "+" на стеке находилось два десятичных числа x1 и x2. Слово "+" убрало из стека верхнее из этих чисел, а нижнее заменило на x3. Если слово не меняет стек, стековая нотация выглядит вот так: | ||
DEGREES ( -- ) Градусы. | |||
В конце стековой нотации идёт краткое название команды, с возможным описанием в свободном формате. | В конце стековой нотации идёт краткое название команды, с возможным описанием в свободном формате. |
Версия от 10:50, 3 марта 2016
Стековая нотация — минимальное требование к документированию слова Каллисто, размером в одну строку. Пример стековой нотации:
+ ( x1 x2 -- x3 ) Сложение. x3 ← x1 + x2
Слева стоит слово Каллисто, которое документируется. В данном случае это слово, состоящее из одного символа "+".
Далее, в скобках, описаны состояния стека до и после выполнения слова, разделённые символами "--". По принятому соглашению вершина стека находится справа. Всё, находящееся в стеке до указанных элементов, остаётся неизменным.
Мы видим, что до выполнения слова "+" на стеке находилось два десятичных числа x1 и x2. Слово "+" убрало из стека верхнее из этих чисел, а нижнее заменило на x3. Если слово не меняет стек, стековая нотация выглядит вот так:
DEGREES ( -- ) Градусы.
В конце стековой нотации идёт краткое название команды, с возможным описанием в свободном формате.
Обозначение типа в стековой нотации
x y любой элемент стека (десятичное число) p неотрицательное десятичное число n целое число k неотрицательное целое число a адрес, неотрицательное целое число
Если в стековую нотацию входит несколько различных чисел данного типа, к букве может добавляться цифра, например x1 x2 x3
Одинаковые вхождения обозначений типа означают одно и тоже число, например:
↑ ( x -- x x ) Дублировать. 2DUP ( x1 x2 -- x1 x2 x1 x2 ) Дублировать пару чисел.
Это заготовка статьи. Вы можете помочь проекту, дополнив её. |