Стек
Основная задача состояла в первом знакомстве с языком Форт. Но для того, чтобы пользоваться этим языком практически, мы должны вернуться немного назад и снова, но уже более внимательно, рассмотреть то, с чем мы кратко ознакомились в предыдущей главе. Мы приносим вам извинения за неизбежный повтор некоторых уже известных вопросов, но повторение способствует лучшему пониманию. Первый объект, на который мы должны посмотреть более внимательно, это стек.
Хотя мы уже говорили, что компьютеры применяются не только для арифметической и математической обработки данных, но и во многих других областях, все равно работа производится с числами в той или иной форме. Форт выполняет манипуляции с числами главным образом в стеке. Как мы уже видели, стек -- это одно из необычных и мощных средств языка Форт. Поначалу стек может показаться вам странным, однако пользоваться стеком очень просто, если вы поймете, что это такое и как с ним можно работать. И нельзя овладеть Фортом, не овладев сначала стеком. Стек -- это динамическая область памяти для чисел, которая постоянно используется языком Форт. В самом использовании стека нет ничего особенно удивительного, поскольку многие языки также им пользуются (правда, незаметно для нас). Исключительно необычным делает Форт то, что в нем стек всегда доступен для вас как с клавиатуры, так и из программы. Все числа, вводимые вами с клавиатуры или поступающие с магнитного диска, фактически попадают в стек. И большая часть чисел, которые передаются из одного слова в другое, также проходят через стек. Большая часть выгод, присущих языку форт, также связана с постоянным использованием стека. (Этот стек обычно называют стеком пользователя, стеком параметров или стеком данных. В действительности Форт использует еще один стек, который называется стеком возвратов и применяется для специальных целей, о нем вы узнаете позже в другой главе.) В этой главе мы объясним, что такое стек, как в нем реализуются арифметические операции, как он используется в Форте, а также рассмотрим слова для перестановки чисел в стеке с целью упрощения решения сложных задач.