Стек данных

Материал из ПМК вики
Перейти к навигации Перейти к поиску

Стек данных (стек параметров, вычислительный стек, операционный стек, десятичный стек) — это участок памяти, который служит общей областью для передачи аргументов между различными операциями (чисел, флагов и т.д.). (Определение Лео Броуди)

Стек данных Каллисто располагается в области десятичных регистров ЭКВМ и используется для передачи параметров и результатов между исполняемыми словами. Его элементами являются десятичные числа (12 разрядов мантиссы и 2 разряда порядка). В процессе исполнения слов значения помещаются на стек данных и снимаются с него.

Стек данных растёт в сторону убывания адресов. Максимальный размер стека данных ограничен размером десятичного словаря и обычно составляет многие сотни элементов. Поэтому такие стеки называют «бесконечными».

Дно стека данных хранится во встроенной переменной S0. Стандартное слово .S выводит на индикатор содержимое стека данных, не меняя его. Слово DEPTH позволяет узнать текущую глубину стека. Слово !SP очищает стек данных.

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

Стек данных появился в Форте в 1961 году, когда Чак Мур работал на Национальную ускорительную лабораторию SLAC (Стэнфордский университет). Стек данных потребовался из-за постфиксной нотации, но в то время он был глубиной всего в один элемент.

В программе CURVE, написанной Чак Муром на Алголе для Burroughs B5500 в 1964 году, стек «push-down» использовался для передачи параметров. Стек оставался в 1966 году при работе Чака Мура на Realtime Systems, Inc (RSI).

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


  У этой статьи нет иллюстраций. Вы можете помочь проекту, добавив их.