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


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


Ведь объявить диапазон и точность - дело относительно нехитрое. А вот что делать, когда разрядная сетка машины или принятое в ней представление чисел не соответствует объявлению типа.

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

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

Если объявленные требования к диапазону и точности критичны для предлагаемых расчетов, то такой отказ, безусловно, предпочтительнее, чем трата времени и усилий на заведомо ошибочные расчеты, да еще с риском оставить пользователя в "счастливом" неведении. К тому же легко автоматически или визуально выделить фрагменты программы, вызвавшие непригодность исполнителя. Это помогает либо подобрать подходящий исполнитель (автоматически, если доступна, скажем, неоднородная сеть машин), либо изменить выделенные компоненты программы.

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

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

 

4.15.4. Единая модель числовых расчетов

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




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