Р'ЕМАХ (Р'МАКС-ПОРЯДОК). Префикс Р обозначает плавающий подтип. Вы­рабатывает наибольшее значение порядка двоичной канонической формы модель­ных чисел подтипа Р. (Этот атрибут вырабатывает произведение 4 » В, определен­ное в разд. 3.5.7.) Значение этого атрибута имеет универсальный-целый тип (см. разд. 3.5.8).

P'EPSILON (Р'ЭПСИЛОН). Префикс Р обозначает плавающий подтип. Выра­батывает абсолютное значение разности между модельным числом 1.0 и следующим модельным числом подтипа Р. Значение этого атрибута имеет универсальный ^ве­щественный тип (см. разд. 3.5.8) .

P'FIRST (Р'ПЕРВЫЙ) . Префикс Р обозначает скалярный тип или подтип скаляр­ного типа. Вырабатывает значение нижней границы Р. Значение этого атрибута имеет тип Р (см. разд. 3.5).

P'FIRST. Префикс Р соответствует индексируемому типу или обозначает огра­ниченный индексируемый подтип. Вырабатывает значение нижней границы диапазо­на первого индекса. Значение этого атрибута имеет тот же тип, что и тип значения нижней границы (см. разд. 3.6.2 и 3.8.2) .

P'FIRST(К). Префикс Р соответствует индексируемому типу или обозначает ограниченный индексируемый подтип. Вырабатывает значение нижней границы диапа­зона К-го индекса. Значение этого атрибута имеет тот же тип, что и указанная нижняя граница. Аргумент К должен быть статическим выражением типа универсальный ^це­лый. Значение К должно быть положительным (ненулевым) и не превосходить раз­мерности массива (см. разд. 3.6.2 и 3.8.2).

P'FIRST_BIT. Префикс Р обозначает компонент записи. Вырабатывает величину смещения первого бита относительно начала первого кванта памяти, занимаемой этим компонентом. Величина смещения измеряется числом битов. Значение этого атрибута имеет универсальный-целый тип (см. разд. 13.7.2) .

P'FORE (Р'ЦИФР-ИЗОБРАЖЕНИЯ). Префикс Р обозначает фиксированный подтип. Вырабатывает минимальное число символов, необходимых для десятично­го представления целой части любого значения подтипа Р в предположении, что это представление не включает порядок, но включает односимвольный префикс, кото­рый является либо знаком минус, либо пробелом. (Это минимальное число не учи­тывает предшествующие нули и символы подчеркивания и, по меньшей мере, равно двум.) Значение этого атрибута имеет универсальный-целый тип (см. разд. 3.5.10).

P'lMAGE (Р'ОБРАЗ). Префикс Р обозначает дискретный тип или подтип. Этот атрибут представляет собой функцию с одним параметром. Фактический параметр X должен быть значением базового тип Р. Тип результата - предопределенный тип STRING. Результат представляет собой образ значения X, т. е. последовательность символов, представляющих изображение значения. Образу целого значения соответст­вует десятичный литерал без символов подчеркивания, предшествующих нулей, порядка и последующих пробелов, но с одним символом слева, который представляет собой либо минус, либо пробел. Образом литерала перечисления является либо соот­ветствующий идентификатор из прописных букв, либо соответствующий символь­ный литерал (включая два апострофа) без предшествующих и последующих пробе­лов. Образ символа, отличного от графического, определяется реализацией (см. разд. 3.5.5).

P'LARGE (Р'НАИБОЛЫИИЙ). Префикс Р обозначает вещественный подтип. Вырабатывает наибольшее положительное модельное число подтипа Р. Значение этого атрибута имеет универсальный-вещественный тип (см. разд. 3.5.8 и 3.5.10).

P'LAST (Р'ПОСЛЕДНИЙ). Префикс Р обозначает скалярный тип или подтип ска­лярного типа. Вырабатывает значение верхней границы Р. Значение этого атрибута имеет тип Р (см. разд. 3.5).

P'LAST. Префикс Р соответствует индексируемому типу или обозначает огра­ниченный индексируемый подтип. Вырабатывает значение верхней границы диапазона первого индекса. Значение атрибута имеет тип верхней границы (см. разд. 3.6.2 и 3.8.2).

P'LAST (К). Префикс Р соответствует индексируемому типу или обозначает ог­раниченный индексируемый подтип. Вырабатывает значение верхней границы диапа­зона К-го индекса. Значение этого атрибута имеет тот же тип, что и верхняя граница. Аргумент К должен быть статическим выражением типа универсальный-целый. Значение К должно быть положительным (ненулевым) и не превышать размерности массива (см. разд. 3.6.2 и 3.8.2).

P'LAST_BIT (Р'ПОСЛЕДНИЙ БИТ). Префикс Р обозначает компонент запи­си. Вырабатывает величину смещения последнего бита относительно первого кванта памяти, занимаемой этим компонентом. Величина смещения измеряется числом битов. Значение атрибута имеет универсальный—целый тип (см. разд. 13.7.2) .

P'LENGTH (Р'КОЛИЧЕСТВО-ЗНАЧЕНИЙ). Префикс Р соответствует индекси­руемому типу ипи обозначает ограниченный индексируемый подтип. Вырабатывает число значений диапазона первого индекса (нуль для пустого диапазона). Значение этого атрибута имеет универсальный-целый тип (см. разд. 3.6.2) .

P’LENGTH(К). Префикс Р соответствует индексируемому типу или обозначает ограниченный индексируемый подтипа. Вырабатывает число значений в диапазоне К-го индекса (нуль для пустого диапазона). Значение этого атрибута имеет универ­сальный-целый тип. Аргумент К должен быть статическим выражением типа уни­версальный-целый. Значение К должно быть положительным (ненулевым) и не должно превышать размерности массива (см. разд. 3.6.2 и 3.8.2).

PMACHINE-EMAX (РМАКС_ПОРЯДОК_В_ЭВМ). Префикс Р обозначает плавающий тип или подтип. Вырабатывает наибольшее значение порядка машинного представления базового типа Р. Значение этого атрибута имеет универсальный—целый тип (см. разд. 13.7.3).

P'MACHINE_EMIN (Р’МИН_ПОРЯДОК_В_ЭВМ). Префикс Р обозначает плава­ющий тип или подтип. Вырабатывает наименьшее (наибольшее по модулю отрица­тельное) значение порядка машинного представления базового типа Р. Значение этого атрибута имеет универсальный-целый тип (см. разд. 13.7.3) .

P'MACHINE_MANTISSA (Р'МАНТИССА_В_ЭВМ). Префикс Р обозначает пла­вающий тип или подтип. Вырабатывает число цифр в мантиссе машинного предс­тавления базового типа Р (цифры являются расширенными цифрами из диапазона О . . P'MACHINE_RADIX-1). Значение этого атрибута имеет универсальный-целый тип (см. разд. 13.7.3).

P'MACHINE_OVERFLOWS (Р'ПЕРЕПОЛНЕНИЕ_В_ЭВМ). Префикс Р обозна­чает вещественный тип или подтип. Вырабатывает значение TRUE, если каждая пре­допределенная операция над значениями базового типа Р либо возвращает точный результат, либо возбуждает исключение NUMERIC -ERROR при переполнении. В про­тивном случае вырабатывает значение FALSE. Значение этого атрибута имеет предоп­ределенный тип BOOLEAN (см. разд. 13.7.3).

P'MACHINE_RADIX (Р'ОСНОВАНИЕ_В_ЭВМ). Префикс Р обозначает плаваю­щий тип или подтип. Вырабатывает значение основания, используемое в машинном представлении базового типа Р. Значение этого атрибута имеет универсальный—целый тип (см. разд. 13.7.3).

P'MACHINE-ROUNDS (Р’ОКРУГЛЕНИЕ_В _ЭВМ). Префикс Р обозначает ве­щественный тип или подтип. Вырабатывает значение TRUE, если каждая предопреде­ленная арифметическая операция над значениями базового типа Р либо возвращает точный результат, либо осуществляет округление. В противном случае вырабатывает значение FALSE. Значение этого атрибута имеет предопределенный тип BOOLEAN (см. разд. 13.7.3).

P'MANTISSA (Р'МАНТИССА). Префикс Р обозначает вещественный подтип. Вырабатывает число двоичных цифр мантиссы модельных чисел подтипа Р. (Этот атрибут вырабатывает число В, введенное в разд. 3.5.7 для плавающего типа и в разд. 3.5.9 для фиксированного типа.) Значение этого атрибута ’ имеет универсаль­ный-целый тип (см. разд. 3.5.8 и 3.5.10).

P'POS (Р'ПОЗИЦ). Префикс Р обозначает дискретный тип или подтип. Этот атрибут является функцией с одним параметром. Фактический параметр X должен быть значением базового типа Р. Тип результата - универсальный-целый. Резуль­татом является порядковый номер позиции для значения фактического параметра (см. разд. 3.5.5).

P'POSITION (Р'ПОЗИЦИЯ). Префикс Р обозначает компонент записи. Выраба­тывает величину смещения первого кванта памяти, занятого этим компонентом, относительно первого кванта памяти, занимаемой записью. Величина смещения изме­ряется числом квантов. Значение этого атрибута имеет универсальный-целый тип (см. разд. 13.7.2).

P'PRED (Р'ПРЕДШ). Префикс Р обозначает дискретный тип или подтип. Этот атрибут является функцией с одним параметром. Фактический параметр X должен быть значением базового типа Р. Тип результата - базовый тип Р. Результатом являет­ся значение с номером позиции на единицу меньшим номера позиции для значения X. Если X равен P’BASE 'FIRST, то возбуждается исключение CONSTRAINT_ERROR (см. разд. 3.5.5).

P'RANGE (Р'ДИАПАЗОН). Префикс Р соответствует индексируемому типу или обозначает ограниченный индексируемый подтип. Вырабатывает диапазон первого индекса Р, т. е. диапазон P'FIRST . . P'LAST (см. разд. 3.6.2) .

P'RANGE(К). Префикс Р соответствует индексируемому типу или обозначает ограниченный индексируемый подтип. Вырабатывает диапазон К-го индекса Р, т. е. диапазон P’FIRST (К) . . P'LAST (К) (см. разд. 3.6.2).

P'SAFE-EMAX (Р'ХРАНИМЫЙ_МАКС_ПОР). Префикс Р обозначает плавающий тип или подтип. Вырабатывает наибольшее значение порядка двоичной канонической формы хранимых чисел базового типа Р. (Этот атрибут вырабатывает число Е, опре­деленное в разд. 3.5.7.) Значение этого атрибута имеет универсальный-целый тип (см. разд. 3.5.8).

P'SAFA_LARGE (Р'НАИБОЛЫПИЙ_ХРАНИМЫЙ). Префикс Р обозначает ве­щественный тип или подтип. Вырабатывает наибольшее положительное хранимое число базового типа Р. Значение этого атрибута имеет универсальный-вещественный тип (см. разд. 3.5.8 и 3.5.10).

P'SAFE_SMALL (Р'ХРАНИМЫЙ-ДИСКРЕТ). Префикс Р обозначает вещест­венный тип или подтип. Вырабатывает наименьшее положительное (ненулевое) хра­нимое число базового типа Р. Значение этого атрибута имеет универсальный-вещест­венный тип (см. разд. 3.5.8 и 3.5.10).

P’SIZE (Р'РАЗМЕР). Префикс Р обозначает тип или подтип. Вырабатывает мини­мальное число битов, необходимое реализации для представления любого возможного значения объекта типа или подтипа Р. Значение этого атрибута имеет универсаль- ный-целый тип (см. разд. 13.7.2).

P’SIZE. Префикс Р обозначает объект. Вырабатывает число битов, отведенных для размещения объекта. Значение этого атрибута имеет универсальный-целый тип (см. разд. 13.7.2).

P’SMALL (Р'ДИСКРЕТ). Префикс Р обозначает вещественный подтип. Вырабаты­вает наименьшее положительное (ненулевое) модельное число подтипа Р. Значение этого атрибута имеет универсальный-вещественный тип (см. разд. 3.5.8 и 3.5.10).

P'STORAGE_SIZE (Р'РАЗМЕР_ПАМЯТИ). Префикс Р обозначает ссылочный тип или подтип. Вырабатывает общее число квантов памяти, резервируемых для соответствующего базовому типа Р набора. Значение этого атрибута имеет универ­сальный—целый тип (см. разд. 13.7.2).

P'STORAGE_SIZE. Префикс обозначает задачный тип или задачу. Вырабатывает общее число квантов памяти, резервируемых для каждой активизации задачи типа Р или объекта Р запаяного типа. Значение этого атрибута имеет универсальный-целый тип (см. разд. 13.7.2).

P'SUCC (Р'СЛЕД). Префикс Р обозначает дискретный тип или подтип. Этот ат­рибут является функцией с одним параметром. Фактический параметр X должен быть значением базового типа Р. Тип результата является базовым типом Р. Резуль­тат представляет собой значение с номером позиции на единицу большим номера позиции для значения X. Если X равен P'BASE'LAST, то возбуждается исключение CONSTRAINT_ERROR (см. разд. 3.5.5).

P’TERMINATED (Р'ЗАВЕРШЕНА). Префикс Р соответствует заданному типу или задаче. Вырабатывает значение TRUE, если задача Р завершена, иначе вырабатывает значение FALSE. Значение этого атрибута имеет предопределенный тип BOOLEAN (см. разд. 9.9).

P'VAL (Р'ЗНАЧ). Префикс Р обозначает дискретный тип или подтип. Этот атри­бут является специальной функцией с одним параметром X, который может быть любого целого типа. Тип результата является базовым типом Р. Результат представ­ляет собой значение, чьим номером позиции является значение типа универсаль- ный-целый, и это значение соответствует X. Если соответствующее X - универсаль­ное-целое значение - не принадлежит диапазону P'POS (P’BASE'FIRST) . . P'POS (P’BASE'LAST), то возбуждается исключение CONSTRAINT_ERROR (см. разд. 3.5.5).

P’VALUE (Р’ЗНАЧЕНИЕ). Префикс Р обозначает дискретный тип или подтип. Этот атрибут является функцией с одним параметром. Фактический параметр X дол­жен быть значением предопределенного типа STRING. Тип результата — базовый тип Р. Любые предшествующие и последующие пробелы последовательности симво­лов, соответствующей X, игнорируются.

Если для перечислимого типа последовательность символов имеет синтаксис литерала перечисления и если этот литерал существует для базового типа Р, то ре­зультатом является соответствующее значение перечислимого типа. Если для целого типа последовательность символов имеет синтаксис целого литерала, возможно с до­полнительным символом плюс или минус, и если соответствующее значение принад­лежит базовому типу Р, то результатом является именно это значение. Во всех осталь­ных случаях возбуждается исключение CONSTRAINT_ERROR (см. разд. 3.5.5).

P'WIDTH (Р’ШИРИНА). Префикс Р обозначает дискретный подтип. Вырабатывает максимальную длину образа по всем значениям подтипа Р. (Образ - это последова­тельность символов, вырабатываемых атрибутом IMAGE.) Значение этого атрибута имеетуниверсальный-целый тип (см. разд. 3.5.5) .

ПРИЛОЖЕНИЕ 2

Обязательное

ПРАГМЫ, ПРЕДОПРЕДЕЛЕННЫЕ В ЯЗЫКЕ

Ниже определяются прагмы LIST, PAGE и OPTIMIZE и остальные предопреде­ленные прагмы, которые рассматривались в описании языка. (В скобках указан пояснительный перевод.)

CONTROLLED (УПРАВЛЯЕМЫЙ). Единственным аргументом является простое имя ссылочного типа. Эта прагма допустима только непосредственно в разделе опи­саний или в спецификации пакета, содержащих описание этого ссылочного типа, причем описание должно помещаться перед прагмой. Не допускается использование этой прагмы для производного типа. Прагма указывает, что для объектов, указанных значениями соответствующего ссылочного типа, не должно выполняться автомати­ческое освобождение памяти, исключая выход из самого вложенного оператора бло­ка, тела подпрограммы или1 тела задачи, охватывающих описание ссылочного типа, либо выход из главной программы (см. разд. 4.8).