СТЕК — РАБОЧАЯ ОБЛАСТЬ ОПЕРАТИВНОЙ ПАМЯТИ ДЛЯ ВЫПОЛНЕНИЯ АРИФМЕТИЧЕСКИХ ДЕЙСТВИЙ
Компьютер вряд ли удовлетворит ваши запросы, если не сможет выполнять арифметические действия. Если вы никогда ранее не имели дело с компьютером, то вам может показаться странным, что он (или даже карманный калькулятор) вообще производит какие-то вычисления. Мы не можем в рамках данной книги
подробно описать весь вычислительный процесс, но поверьте, что чуда здесь нет никакого.
В принципе компьютеры при выполнении операций разбивают их на очень мелкие этапы и реализует предельно элементарные действия. Для нас с вами операция сложения «3 + 4» не составляет труда и вы, не задумываясь, называете результат: «7>, для компьютера же это очень длинная цепочка действий. Представьте себе, что у вас есть карманный калькулятор и вы хотите выполнить на нем такое сложение. Чтобы получить результат, требуется нажать клавиши в указанном ниже порядке.
Когда вы поочередно нажимаете клавиши, как показано на рисунке, происходит следующее:
Многие калькуляторы и компьютеры решают арифметические задачи аналогичным способом. Вы можете этого и не знать, но компьютер действительно запоминает числа в различных участках своей оперативной памяти и затем выполняет над ними необходимые операции. Центральный участок памяти, где временно запоминаются числа, над которыми затем будет выполнена операция, называется стеком. Числа «вталкиваются в стек» и впоследствии операции выполняются именно над данными числами1. Поясним это на примере. Введите со своего терминала строку3 4 + .<return> 7 ok
Вспомните, что при вводе числа интерпретатор текста переправляет его обработчику чисел NUMBER, который помещает это число в некоторый участок памяти. Таким участком является стек.
Короче говоря, когда вы вводите число 3 с терминала, вы «вталкиваете» его в стек.
Далее в вершину стека помещается число 4, «проталкивая» тройку внутрь.
1 Для пользователей карманных калькуляторов. В обычных калькуляторах, как правило, применяется и стек, и постфиксная запись арифметики.
Следующее слово из входного потока должно быть найдено в словаре. Знак + был предварительно определен как последовательность таких действий: «взять два верхних числа из стека, просуммировать их и поместить результат обратно в
Слово . также находится в словаре. Оно входит Форт-системы и определено таким образом: «взять и вывести его на терминал».