Язык программирования Форт



         

Глава 6. Хранение чисел в памяти


До сих пор числа, которые использовались Форт-программами, хранились в стеке. Если вы поработали с такими языками программирования, как Бейсик, фортран или Паскаль, это покажется вам достаточно странным, большинство языков не используют стек непосредственно, и числа в них хранятся в переменных. Переменные представляют собой ячейки памяти, которые используются для хранения чисел, в большинстве языков предусматриваются размещение и автоматические манипуляции с числами в памяти. При этом стек фактически также используется, но программисту не приходится им управлять. Рассмотрим следующую программу на Бейсике: 10 А=5 20 В=6 30 А=А+В 40 PRINT A

Число 5 запоминается в ячейке памяти, обозначенной как переменная А, число 6 - в ячейке, отведенной для переменной В. Когда значения А и В складываются, они на самом деле выбираются из памяти, складываются почти так же, как в Форте, а затем результат снова помещается в ячейку, отведенную для переменной А. Хотя стек, может быть, и использовался для операции сложения, программист и не подозревает об этом. Программа на Форте напечатает сумму чисел 5 и 6 следующим образом: 5 6 + .

Все действия будут выполнены в стеке, в данном случае пользователю Форта не обязательно даже знать что-либо о переменных. Программирующий на Бейсике может привести доводы за использование переменных: программисту не приходится следить, где находится число; в то же время программирующий на Форте будет возражать, что для переменных требуется больше места в памяти, обращение с ними требует больших затрат машинного времени и текст программы получается более длинным. Обе стороны правы, и, конечно же, любая большая программа где-то должна хранить числа, если они в данный момент не используются. К счастью, Форт тоже позволяет вам пользоваться переменными (и соответствующими методами хранения чисел), если вы предпочитаете их или они вам необходимы.

Какими же достоинствами обладают переменные, если вы можете обходиться стеком? Переменные служат для трех целей.


Содержание  Назад  Вперед