Справочное руководство по языку Ада-83

          

Универсальные выражения


Универсальное выражение — это выражение, вырабатывающее результат универсального-целого или универсального-вещественного типа.

Для универсального-целого типа предопределены те же операции, что и для любого целого типа. Для универсального-вещественного типа предопределены те же операции, что и для любого плавающего типа. Кроме того, эти операции включают операции умножения и деления.

Знак Операция операции Тип левого операнда Тип правого операнда Тип результата
* Умножение Универсальный-вещественный Универсальный- целый Универсальный- вещественный
Универсальный - целый Универсальный- вещественный Универсальный - вещественный
/ Деление Универсальный-вещественный Универсальный-целый Универсальный-вещественный

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

При вычислении операций универсального выражения, не являющегося статическим, возбуждение исключения NUMERIC_ERROR реализацией допускается только в том случае, если результат операции — вещественное число с абсолютным значением, превышающим наибольшее хранимое число самого точного предопределенного плавающего типа (исключая универсальный-вещественный), или целое значение, большее, чем SYSTEM.MAX_INT, либо меньшее, чем SYSTEM.MIN_INT.

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



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