Языки программирования. Практический сравнительный анализ


Языки программирования. Практический сравнительный анализ - стр. 238


Гарантировать надежность означает, в частности, гарантировать как необходимую точность расчетов, так и отсутствие незапланированных исключительных ситуаций (переполнений, например) при допустимых исходных данных.

Очевидно, что достичь такой цели можно, только предоставив программисту возможность объявлять нужные ему диапазон и точность представления чисел.

Искусство авторов языка (создателей схемы управления расчетами) проявляется в том, чтобы найти разумный компромисс между единообразием управления и эффективностью расчетов при гарантированной надежности.

Начать естественно с разумной классификации числовых данных в зависимости от характера расчетов.

В Аде три категории числовых типов: целые, вещественные плавающие и вещественные фиксированные. Для каждой категории типов - свои средства объявления.

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

[Работать с ненормализованными числами приходится потому, что во встроенных системах (на которые в первую очередь ориентированна Ада) часто применяются относительно дешевые компьютеры с машинным словом небольшой длинны и без встроенной плавающей арифметики.

Чтобы достичь на них высокой скорости и приемлемой точности расчетов, приходится вникать в детали выполнения каждого арифметического действия, экономя на каждом сдвиге положения десятичной точки. Здесь и оказываются полезными фиксированные типы.]

Плавающие типы чаще встречаются в языках программирования для числовых расчетов. Поэтому ограничимся демонстрацией основной идеи управления расчетами на примере плавающих типов Ады.

 

4.15.3. Зачем объявлять диапазон и точность

Оставим пока в стороне синтаксис и семантику соответствующих объявлений.


- Начало -  - Назад -  - Вперед -