Для каждой реализации имеется предопределенный библиотечный пакет SYSTEM, который включает определения некоторых характеристик, зависящих от конфигурации. Спецификация пакета зависит от реализации и должна быть приведена в приложении F. Видимый раздел этого пакета должен содержать по крайней мере следующие описания:
package SYSTEM is
type ADDRESS is определен-реализацией;
type NAME is определенный-реализацией-перечислимого-типа;
SYSTEM-NAME : constant NAME := определен - реализацией;
STORAGE-UNIT : constant := определен-реализацией;
MEMORY-SIZE : constant := определен-реализацией;
-- зависящие от системы именованные числа: MIN-INT : constant := определен-реализацией;
МАХ-INT : constant := определен-реализацией;
MAX-DIGITS : constant := определен-реализацией;
MAX-MANTISSA : constant := определен-реализацией;
FINE-DELTA : constant := определен-реализацией;
TICK : constant := определен-реализацией;
-- другие зависящие от системы описания: subtype PRIORITY is INTEGER range определен-реализацией;
end SYSTEM;
Тип ADDRESS — это тип адресов, задаваемых спецификаторами адреса; к этому же типу принадлежат значения, вырабатываемые атрибутом ADDRESS. Значения перечислимого типа NAME — это имена альтернативных машинных конфигураций, обрабатываемых реализацией;
одно из них — константа SYSTEM-NAME. Именованное число STORAGE-UNIT равно числу разрядов в кванте памяти, а именованное число MEMORY-SIZE — числу квантов памяти, доступных в конфигурации; эти именованные числа имеют
универсальный-целый
тип.
Альтернативная форма пакета SYSTEM с другими значениями SYSTEM-NAME, STORAGE-UNIT и MEMORY-SIZE может быть получена использованием соответствующих прагм. Эти прагмы допустимы только в начале компиляции до первого компилируемого модуля (если он есть) компиляции.
pragma
SYSTEM-NAME (литерал-перечисления);
В результате выполнения этой прагмы заданный идентификатором литерал перечисления будет использован для определения константы SYSTEM-NAME.
|
MIN-INT |
Наименьшее (наибольшее по модулю отрицательное) значение из всех определенных целых типов. |
|
МАХ-I NT |
Наибольшее (положительное) значение из всех предопределенных целых типов. |
|
MAX-DIGITS |
Наибольшее допустимое значение числа значащих десятичных цифр в ограничении для плавающего типа. |
|
MAX-MANTISSA |
Наибольшее возможное число двоичных цифр в мантиссе модельных чисел фиксированного подтипа. |
|
FINE-DELTA |
Наименьшая дельта, допустимая в ограничении для фиксированного типа, которое имеет ограничение диапазона -1.0..1.0. |
|
TICK |
Базовый период времени, выраженный в секундах. |
|
X'ADDRESS |
Вырабатывает адрес первого кванта памяти, отведенной под X. Для подпрограммы, пакета, задачного модуля или метки это значение ссылается на машинный код, связанный с соответствующим телом или оператором. Для входа, для которого задан спецификатор адреса, это значение ссылается на соответствующее аппаратное прерывание. Значение этого атрибута принадлежит типу ADDRESS, определенному в пакете SYSTEM. |
|
X'SIZE |
Примененный к объекту вырабатывает число битов, отводимых в памяти для размещения объекта. Примененный к типу или подтипу вырабатывает минимальное число битов, необходимое реализации для размещения любого возможного объекта этого типа или подтипа. Значение этого атрибута имеет тип универсальный-целый. |
|
R.C'POSITION |
Вырабатывает величину смещения первого кванта памяти, занятого полем С, относительно первого кванта памяти, занятого записью R. Величина смещения измеряется числом квантов. Значение этого атрибута принадлежит универсальному-целому типу. |
|
R.C'FIRST_BIT |
Вырабатывает величину смещения первого бита, занятого полем С, относительно первого кванта памяти. Величина смещения измеряется числом битов. Значение этого атрибута имеет универсальный-целый тип. |
|
R.C'LAST_BIT |
Вырабатывает величину смещения последнего бита, занятого полем С, относительно первого кванта памяти, занятого С. Величина смещения измеряется числом битов. Значение этого атрибута имеет универсальный-целый тип. |
|
Т'STORAGE_SIZE |
Вырабатывает общее число квантов памяти, выделенных для набора, связанного с базовым типом Т. Значение атрибута имеет универсальный-целый тип. |
|
Т'STORAGE_SIZE |
Вырабатывает число квантов памяти, выделенных для каждой активизации задачи типа Т или активизации объекта Т задачного типа. Значение этого атрибута имеет универсальный-целый тип. |
|
T'MACHINE_ROUNDS |
Вырабатывает значение TRUE, если каждая предопределенная арифметическая операция над значениями базового типа Т либо возвращает точный результат, либо осуществляет округление. В противном случае вырабатывает значение FALSE. Значение этого атрибута имеет предопределенный тип BOOLEAN. |
|
T'MACHINE_OVERFLOWS |
Вырабатывает значение TRUE, если каждая предопределенная операция над значениями базового типа Т либо возвращает точный результат, либо возбуждает исключение NUMERIC_ERROR при перевыполнении (см. 4.5.7); в противном случае вырабатывает значение FALSE. Значение этого атрибута имеет предопределенный тип BOOLEAN. |
|
T'MACHINE_RADIX |
Вырабатывает значение основания системы счисления, используемого в машинном представлении базового типа Т. Значение этого атрибута имеет универсальный-целый тип. |
|
T'MACHINE_MANTISSA |
Вырабатывает число цифр в мантиссе машинного представления базового типа Т. (Цифра — это расширенная цифра из диапазона 0 .. Т'MACHINE_RADIX - 1.) Значение этого атрибута имеет универсальный-целый тип. |
|
T'MACHINE_EMAX |
Вырабатывает наибольшее значение порядка в машинном представлении базового типа Т. Значение этого атрибута имеет универсальный-целый тип. |
|
T'MACHINE_EMIN |
Вырабатывает наименьшее (наибольшее по модулю отрицательное) значение порядка в машинном представлении базового типа Т. Значение этого атрибута имеет универсальный-целый тип. |
| Пред. | Уровень выше | След. |
|
13.6. ИЗМЕНЕНИЕ ПРЕДСТАВЛЕНИЯ |
Содержание | 13.8. ВСТАВКИ МАШИННЫХ КОДОВ |