Начальный курс программирования на языке Форт

         

ПОЧЕМУ ПРОГРАММИСТЫ ПРЕДПОЧИТАЮТ МАСШТАБИРОВАНИЕ


Многие опытные программисты, использующие традиционные языки программирования, воспринимают представление с плавающей точкой как нечто само собой разумеющееся. Их мнение можно выразить примерно так: «Почему я должен следить за перемещением десятичной точки? Для чего же тогда нужны компьютеры?». Вопрос поставлен правильно - он отражает основное преимущество реализации арифметических операций над числами с плавающей точкой. При переводе математических уравнений в машинный код такое представление чисел существенно облегчает жизнь программисту.

Однако многие прикладные Форт-программы должны работать в реальном масштабе времени. При этом компьютер используется для управления некоторым устройством или организации функционирования ряда дисплеев и клавиатур. Такие программы, для того чтобы «выжимать» из устройств максимальную производительность, нужно делать по возможности быстродействующими Следовательно, программист зачастую заинтересован в максимизации производительности аппаратных средств в большей степени, чем в повышении эффективности программирования. Во многих случаях (например, при использовании карманных компьютеров) к тому же приходится экономить память.

Если в вашей программе некоторые вычисления должны повторяться миллионы раз, то требуемую скорость вы получите, выполняя арифметические операции над числами с фиксированной точкой. Действительно ли велик получаемый при этом выигрыш? Бесспорно. Время выполнения операций деления или умножения чисел с плавающей точкой намного превосходит время выполнения аналогичных операций над числами с фиксированной точкой. А при сложении или вычитании на подготовку и преобразование аргументов уходит столько же времени, сколько и на саму операцию. Большинство мини- и микрокомпьютеров «не думает» в терминах представлений с плавающей точкой и накладные расходы по организации выполнения соответствующих операций на них очень велики.

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

Неверно, что Форт не имеет возможности поддерживать арифметику с плавающей точкой. Программистами созданы на Форте функции с плавающей точкой [1] - [7], а в ряде Форт-систем применяются сопроцессоры с плавающей точкой (отдельный чип, единственной функцией которого является реализация высокоскоростных операций над числами с плавающей точкой) [8], [9].

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


Содержание раздела