Н. Джехани - Язык Ада (1988) (1160771), страница 127
Текст из файла (страница 127)
Тип результата — базовый тип Р. Любые предмествующие и последующие пробелы последовательности символов, соответствующей Х, игнорируются. Если для перечиспимого типа последовательность символов имеет синтаксис литерала перечисления и если этот литерал существует для базового типа Р, то результатом является соответствующее значение перечислимого типа. Если для целого типа последовательность символов имеет синтаксис целого литерала, возможно с дополнительным символом плюс или минус, и если соответствующее значение принадлежит базовому типу Р, то результатом является именно это значение. Во всех остальных случаях возбуждается исключение СОМЗТЙА(МТ ЕЙНОЙ (см. 3.5.5).
Префикс Р обозначает дискретный подтип. Вырабатывает максимальную длину образа по всем значениям подтипа Р.(Об. раз — это последовательность символов, вырабатываемых атрибутом (МАЗЕ.) Значение этого атрибута имеет универсальный целыя тип (см. 3.5.5). Приложение В ПРАГМЫ, ПРЕДОПРЕДЕЛЕННЫЕ В ЯЗЫКЕ Прагма СОМТВОЕЕЕО Смысл Единственным аргументом является простое имя ссылочного типа. Эта прагма допустима только непосредственно в разделе описаний или в спецификации пакета, содержащих описание этого ссылочного типа, причем описание должно помещаться перед прагмой. Не допускается использование этой прагмы для производного типа.
Прагма указывает, что для объектов, указанных значениями соответствующего ссылочного типа, не должно выполняться автоматическое освобождение памяти, исключая выход из самого вложенного оператора блока, тела подпрограммы или тела задачи, охватывающих описание ссылочного типа либо выход из главной программы (см. 4.8) Е( АВОВАТЕ В качестве аргументов используются одно или несколько простых имен, обозначающих библиотечные модули. Эта прагма допустима только непосредственно после спецификатора контекста компилируемого модуля (перед библиотечным или вторичным модулем).
Каж. дый агрумент прагмы должен быть простым именем библиотечного модуля, упомянутого в спецнфикаторе контекста. Эта прагма указы. вает, что тело соответствующего библиотечного модуля должно быть предвыполнено до предвыполнения данного компилируемого модуля. Если данный компилируемый модуль является субмодупем, то тело библиотечного модуля должно быть предвыполнено до предвы.
полнения тела родительского (по отношению к этому субмодулю) библиотечного модуля (см. 10.5). (М(.)МЕ В качестве аргументов используется одно или несколько имен; каждое имя является либо именем подпрограммы, либо именем настраи. ваемои подпрограммы. Эта прагма допустима только на месте элемента описания в разделе описаний или в спецификации пакета либо же после библиотечного модуля в компиляции, но до любого следующего компилируемого модуля. Прагма указывает на возмож. ную подстановку тела подпрограммы вместо каждого их вызова; в случае настраиваемой подпрограммы эта прагма относится к вызовам ее конкретизаций (см.
6.3.2). (МТЕВРАСЕ В качестве аргументов используются имя языка и имя подпрограммы. Эта прагма допустима на месте элемента описания и должна применяться к подпрограмме, описанной ранее в виде элемента описания того же самого раздела описаний или спецификации пакета. Эта прагма допустима также для библиотечного модуля; в этом слу. чае прагма должна помещаться после описания подпрограммы и пе. ред любым следующим компилируемым модулем.
Эта прагма указывает другои язык (и тем самым соглашения по вызову) и информиру. ет компилятор о том, что для соответствующей подпрограммы будет представлен объектный модуль (см. 13.9). В качестве единственного аргумента используется один из идентификаторов ОМ или ОРР.
Эта прагма допустима в любом месте, где допустимы прагмы. Прагма указывает, что необходимо продолжить или прекратить вывод листинга компиляции до тех пор, пока в той УВТ Ниже определяются прагмы 08Т, РАВЕ и ОРТ)М(2Е и остальные предопределенные прагмы, которые рассматривались в описании языка. П пвы, и ол званные в языке 493 МЕМОЯУ 8)ЕЕ ОРТ1М)ЕЕ РАСК РАВЕ РЯЮЯ)ТУ 8НАЯЕО 8ТОЯАВЕ ()Н1Т 80РРЯЕ88 же компиляции не встретится прагма Е)8Т с другим аргументом.
Текст самой прагмы печатается всегда, если компилятор выводит листинг. В качестве единственного аргумента используется числовой литерал. Эта прагма допустима только в начале компиляции, до ее первого компилируемого модуля (если он есть). Применение этой прагмы приводит к использованию указанного числового литерала для опреде. пения именованного числа МЕМОЯУ 8(ЕЕ (см.
13.7). В качестве единственного аргумента используется один из идентификаторов Т(МЕ или ВРАСЕ. Эта прагма допустима только внутри раздела описаний и относится к блоку или телу, охватывающему этот раздел описаний. Она указывает главныи критерий оптимизации— время выполнения или занимаемую память. В качестве единственного аргумента используется простое имя именуемого или индексируемого типа. Допустимое положение этой праг. мы в программе и ограничения, относящиеся к именуемому типу, определяются теми же правилами, что и для спецификатора представления. Прагма указывает, что при выборе представления значе.
ний данного типа главным критерием оптимизации обязан быть ми. нимум занимаемой памяти (см. 13.1). Эта прагма не имеет аргументов и допустима везде, где допустимы прагмы. Она указывает, что текст программы, следующий за прагмой, должен начинаться с новой страницы (если компилятор параллельно выводит листинг), Единственным аргументом этой прагмы является статическое выра. жение предопределенного целого подтипа РЯ)ОЯ)ТУ. Эта прагма до.
пустима только в спецификации задачи или непосредственно внутри самого внешнего раздела описаний главной программы. Она указывает приоритет этои задачи (или задач этого задачного типа) или приоритет главнои программы (см. 9.8). В качестве единственного аргумента этои прагмы используется простое имя переменной. Эта прагма допустима только для переменной, описанной посредством описания объекта скалярного или ссылочно. го типа. И описание переменной, и прагма должны находиться (в указанном порядке) в одном и том же разделе описаний или в спецификации пакета.
Эта прагма указывает, что каждое чтение или изме. нение значения этой переменнои является ее точкой синхронизации. Реализация должна ограничивать круг объектов, для которых допустимо использование этой прагмы, теми объектами, прямое чтение или прямое изменение значения которых реализуются как неделимые операции (см. 9.11). В качестве единственного аргумента используется числовои литерал. Эта прагма допустима только в начале компиляции, до первого ее компилируемого модуля (если он есть).
Применение этой прагмы при. водит к использованию для определения именованного числа 8ТОЯАОЕ ОКцТ значения заданного числового литерала (см. 13.7). В качестве аргументов используются идентификатор проверки, а также имя объекта, типа или подтипа, подпрограммы, задачного модуля или настраиваемого модуля. Эта прагма допустима только непосредственно либо в разделе описаний, либо в спецификации пакета. В последнем случае единственным допустимым вариантом является использование имени, обозначающего понятие (или несколько совмещенных подпрограмм), описанное непосредственно внутри этои спецификации. Разрешение подавить указанную проверку действует от прагмы до конца области действия описаний, соответствующей самому вложенному оператору блока или программному модулю.
Для П нлоягенне В ЗУЗТЕМ МАМЕ прагмы, используемой в спецификации пакета, зто разрешение дей. ствительно до конца области действия описания, заданного своим именем понятия. Если в качестве аргумента прагмы используется имя, то разрешение на подавление указаннои проверки ограничивается следующими правилами: зто разрешение распространяется только на операции над указанными объектами базового типа указанного типа ипи подтипа, на вызовы указанной подпрограммы, на активизацию задач указанного задачного типа, на конкретизацию укаэанного настраиваемого модуля (см. 11.7). Единственным аргументом прагмы является литерал перечисления. Эта прагма допустима только в начале компиляции, до первого ее компилируемого модуля (если он есть). Применение прагмы приводит к использованию литерала перечисления, заданного идентификато.