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



         

Стек в арифметических операциях - часть 3


Невозможно отрицать, что алгебраическая запись полезна для выражения сложных формул, почему же тогда мы выступаем против нее в компьютерном языке и применяем постфиксную запись ? По двум причинам. Алгебраическая запись избыточна, а для постфиксной требуется меньше места в памяти, кроме того, она также экономит и время компьютера.

Экономия места и памяти переходят в мощность ЭВМ. Вот пример неопределенности в алгебраической записи. Пусть имеется такая запись :

2х3+4х5=?

Возможно несколько ответов в зависимости от порядка, в котором выполняются операции умножения и сложения. Можно избежать неопределенности двумя способами: используя скобки или приписывая операторам порядок следования. На бумаге можно использовать скобки, например:

(2 х 3) + (4 х 5 ) = 26

или

(2 x 3 + 4 ) x 5 = 50

Если Вы программируете на Бейсике, то наверняка знаете, что в нем разрешается пользоваться скобками. Если скобок нет, то и Бейсик, и большинство других языков программирования во избежание двусмысленности приписывают операторам определенный порядок следования, в данном случае первыми производятся операции умножения, а затем операции сложения. Таким образом, если не применять скобок, то результат приведенного примера на Бейсике будет равен 26. Необходимость в скобках или порядке следования операции приводит к тому, что алгебраическая нотация снижает скорость операций на ЭВМ. Чтобы сам компьютер решил, как интерпретировать выражение, ему требуется немалое дополнительное время, а для более подробного указания компьютеру порядка его действий требуется дополнительная память для размещения кода программы. В интерпретирующих языках типа Бейсика это время затрачивается при исполнении программы. В компилирующих языках типа Фортрана или Паскаля это время тратится во время компиляции. Если вы все еще не убедились в том, что постфиксная запись не приводит к неопределенности, вам помогут несколько упражнений.




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