468 Глава
Архитектура и программирование сопроцессора
Другое название такой формы записи —
постфиксная
Это означает, что
знак операции записывается после операндов, участвующих в операции. Постфикс-
ная запись позволяет вычислять
за один проход с учетом приоритета
арифметических операций.
Алгоритм вычисления выражений в постфиксной записи имеет следующий вид.
1. Выбрать очередной символ записи выражения в форме
ИЗ.
2. Если очередной выбранный символ — операнд, то поместить его в
после
чего вернуться к шагу
3. Если очередной выбранный символ — знак операции, то выполнить ее с одним
или двумя операндами на вершине стека. Результат операции необходимо по-
местить обратно на вершину стека.
4. Если в исходной записи выражения в форме ПОЛИЗ еще остались символы,
то вернуться к шагу иначе — на вершине стека получить результат вычисле-
ния выражения.
При разработке программ необходимо учитывать следующие факторы:
ограниченность глубины стека сопроцессора;
несовпадение форматов операндов;
в отсутствие поддержки на уровне команд сопроцессора некоторых операций,
таких как возведение в степень, вычисление тригонометрических функций.
Для решения этих проблем вам придется разрабатывать дополнительный про-
граммный код, отклоняясь от классической (последовательной) обработки ариф-
метических выражений, представленных в форме ПОЛИЗ. Однако стержнем про-
граммы останется строка в форме ПОЛИЗ.
Среди файлов к данной главе находятся файлы программы, с помощью кото-
рой вы можете облегчить себе задачу преобразования простого арифметического
выражения в форму ПОЛИЗ. Она поддерживает ограниченное количество опера-
ций, но их набор вы можете расширить, дополнив конфигурационный файл
и исходный текст программы.
Здесь возникает интересная алгоритмическая задача. В чем ее суть? Для тех
операций, которые реализованы на уровне команд сопроцессора, особых проблем
нет. И наоборот, для выражений, содержащих операции, не реализованные на уров-
не команд сопроцессора, возникает проблема преобразования исходной строки
в форму ПОЛИЗ. В качестве примера можно привести такую распространенную
операцию, как возведение в степень. В соответствующей программе, которую мы
рассмотрим чуть позже, реализуется ряд операций, необходимых для возведения
в степень. То есть в выражении, преобразованном в форму ПОЛИЗ, будут записа-
ны некоторые операции, отсутствующие в исходной записи этого выражения. Это
означает, что при формировании строки ПОЛИЗ программа должна выполнять
неявную подстановку дополнительных операндов и операций в соответствии с не-
которой формулой приведения.
Do'stlaringiz bilan baham: