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


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


Наглядно это можно представить следующей диаграммой

 

           модельный интервал аргумента

             -------[-------]-------

                   /         \

                  /           \     точные математические

                 /             \        результаты на

             ---I---------------I---- границе модельного

                I               I         интервала

         --[----I---------------I----]-- 

           допустимый интервал результата

                       ||

      минимальный объемлющий модельный интервал

           

                     Рис. 4.4

 

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

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

При этом он не должен забывать, что при реализации излишний диапазон или излишняя точность могут стоить дорого и по времени, и по памяти (а могут и вовсе выйти за возможности конкретной реализации языка). Короче говоря, нужно программировать как можно ближе к нуждам решаемой задачи.

В Аде предусмотрено, что реализация может предоставлять несколько предопределенных (именованных или анонимных) плавающих типов с различными диапазонами и точностью расчетов.

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

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


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