Справочник по Ada 95
Приложение М
(информативное)
Реализационно-зависимые характеристики
Язык Ada допускает некоторые зависимости от машины контролируемым образом. Каждая реализация Ada должна документировать все реализационно-зависимые характеристики:
- Следование или неследование каждой рекомендации, данной в разделе «Рекомендации по реализации». См. 1.1.2(37).
- Ограничения по емкости реализации. См. 1.1.3(3).
- Отклонения от стандарта, которые трудно избежать, учитывая среду выполнения реализации. См. 1.1.3(6).
- Какие операторы code_statement вызывают внешние взаимодействия. См. 1.1.3(10).
- Кодированное представление текста программы Ada. См. 2.1(4).
- Допустимые управляющие функции в комментариях. См. 2.1(14).
- Представление конца строки. См. 2.2(2).
- Максимальная длина строки и длина лексического элемента. См. 2.2(14).
- Реализационно-зависимые директивы. См. 2.8(14).
- Воздействие директивы Optimize. См. 2.8(27).
- Последовательность символов значения, возвращаемого S'Image, когда некоторые графические символы S'Wide_Image не определены в Character. См. 3.5(37).
- Предопределённые целочисленные типы, объявленные в пакете Standard. См. 3.5.4(25).
- Любые нестандартные целочисленные типы и операторы, определённые для них. См. 3.5.4(26).
- Любые нестандартные вещественные типы и операторы, определённые для них. См. 3.5.6(8).
- Какие сочетания требуемой десятичной точности и диапазона поддерживаются для типов с плавающей точкой. См. 3.5.7(7).
- Предопределённые типы с плавающей точкой, объявленные в пакете Standard. См. 3.5.7(16).
- Поле small обычного типа с фиксированной точкой. См. 3.5.9(8).
- Какие сочетания small, диапазона и digits поддерживаются для типов с фиксированной точкой. См. 3.5.9(10).
- Результат Tags.Expanded_Name для типов, объявленных внутри неопределенного оператора block_statement. См. 3.9(10).
- Реализационно-зависимые атрибуты. См. 4.1.4(12/1).
- Любые реализационно-зависимые типы времени. См. 9.6(6).
- База времени, связанная с относительными задержками. См. 9.6(20).
- База времени типа Calendar.Time. См. 9.6(23).
- Часовой пояс, используемый для операций пакета Calendar. См. 9.6(24).
- Любые ограничения на операторы delay_until_statement операторов select_statement. См. 9.6(29).
- Можно ли два неперекрывающихся фрагмента составного объекта адресовать независимо в случае, когда для объекта указано уплотнение, расположение записи или Component_Size. См. 9.10(1).
- Представление compilation. См. 10.1(2).
- Любые ограничения на compilations, содержащие несколько compilation_units. См. 10.1(4).
- Механизмы создания среды и добавления и замены единиц компиляции. См. 10.1.4(3).
- Реализационно-зависимые средства (если таковые имеются) указания, какие единицы компиляции необходимы для данной единицы компиляции. См. 10.2(2).
- Способ явного назначения единиц библиотеки в партицию. См. 10.2(2).
- Способ обозначения главной подпрограммы в партиции. См. 10.2(7).
- Порядок обработки library_items. См. 10.2(18).
- Передача параметров и возврат функции для главной подпрограммы. См. 10.2(21).
- Механизмы создания и запуска партиций. См. 10.2(24).
- Подробности выполнения программы, включая завершение программы. См. 10.2(25).
- Семантика любых неактивных партиций, поддерживаемых реализацией. См. 10.2(28).
- Информация, возвращаемая Exception_Message. См. 11.4.1(10).
- Результат Exceptions.Exception_Name для типов, объявленных внутри неопределенного оператора block_statement. См. 11.4.1(12).
- Информация, возвращаемая Exception_Information. См. 11.4.1(13).
- Реализационно-зависимые имена проверок. См. 11.5(27).
- Любые ограничения, наложенные на элементы представления. См. 13.1(20).
- Интерпретация каждого аспекта представления. См. 13.1(20).
- Значение Size для неопределённых подтипов. См. 13.3(48).
- Стандартное внешнее представление метки типа. См. 13.3(75/1).
- Что определяет, является ли единица компиляции одинаковой в двух разных партициях. См. 13.3(76).
- Реализационно-зависимые компоненты. См. 13.5.1(15).
- Если Word_Size = Storage_Unit, то стандартный порядок битов. См. 13.5.3(5).
- Содержание видимой части пакета System и его языковых потомков. См. 13.7(2).
- Содержание видимой части пакета System.Machine_Code и смысл операторов code_statement. См. 13.8(7).
- Эффект неявного преобразования. См. 13.9(11).
- Предоставляет ли реализация имена, доступные пользователю, для стандартного типа пула(ов)? См. 13.11(17).
- Как выбирается пул памяти для типа доступа, если Storage_Pool не задан для типа? См. 13.11(17).
- Значение Storage_Size. См. 13.11(18).
- Реализационно-зависимые аспекты пулов памяти. См. 13.11(22).
- Набор restrictions, разрешённых в директиве pragma Restrictions. См. 13.12(7).
- Последствия нарушения ограничений на директивы pragma Restrictions. См. 13.12(9).
- Представление, используемое атрибутами Read и Write элементарных типов с точки зрения элементов потока. См. 13.13.2(9).
- Имена и характеристики числовых подтипов, объявленных в видимой части пакета Standard. См. A.1(3).
- Точность, фактически достигнутая элементарными функциями. См. A.5.1(1).
- Знак нулевого результата некоторых операторов или функций в Numerics.Generic_Elementary_Functions, когда Float_Type'Signed_Zeros равен True. См. A.5.1(46).
- Значение Numerics.Discrete_Random.Max_Image_Width. См. A.5.2(27).
- Значение Numerics.Float_Random.Max_Image_Width. См. A.5.2(27).
- Алгоритмы генерации случайных чисел. См. A.5.2(32).
- Строковое представление состояния генератора случайных чисел. См. A.5.2(38).
- Минимальный интервал времени между вызовами процедуры Reset, зависящей от времени, которая гарантирует инициирование различных последовательностей случайных чисел. См. A.5.2(45).
- Значения атрибутов Model_Mantissa, Model_Emin, Model_Epsilon, Model, Safe_First и Safe_Last, если приложение Numerics не поддерживается. См. A.5.3(72).
- Любые реализационно-зависимые характеристики пакетов ввода-вывода. См. A.7(14).
- Значение Buffer_Size в Storage_IO. См. A.9(10).
- Внешние файлы для стандартного ввода, стандартного вывода и стандартной ошибки См. A.10(5).
- Точность значения, полученного процедурой Put. См. A.10.9(36).
- Текущий размер файла потока, для которого позиционирование не поддерживается. См. A.12.1(1.1/1).
- Значение Argument_Count, Argument и Command_Name. См. A.15(1).
- Реализационно-зависимые имена соглашений. См. B.1(11).
- Способ выбора имён связей, когда не задано ни имя связи, ни адрес импортированного или экспортированного объекта. См. B.1(36).
- Значение имён связей. См. B.1(36).
- Эффект директивы pragma Linker_Options. См. B.1(37).
- Содержание видимой части пакета Interfaces и его языковых потомков. См. B.2(1).
- Реализационно-зависимые потомки пакета Interfaces. Содержание видимой части пакета Interfaces. См. B.2(11).
- Определения типов и констант в Interfaces.C. См. B.3(41).
- Типы Floating, Long_Floating, Binary, Long_Binary, Decimal_Element и COBOL_Character; и начальные значения переменных Ada_To_COBOL и COBOL_To_Ada в Interfaces.COBOL. См. B.4(50).
- Типы Fortran_Integer, Real, Double_Precision и Character_Set в Interfaces.Fortran. См. B.5(17).
- Поддержка доступа к машинным инструкциям. См. C.1(1).
- Реализационно-зависимые аспекты доступа к машинным операциям. См. C.1(9).
- Реализационно-зависимые аспекты прерываний. См. C.3(2).
- Реализуемые аспекты предварительной обработки. См. C.4(13).
- Семантика директивы Discard_Names. См. C.5(7).
- Результат атрибута Task_Identification.Image. См. C.7.1(7).
- Значение Current_Task при работе в защищенном входе или обработчике прерывания. См. C.7.1(17).
- Последствия вызова Current_Task из тела входа или обработчика прерывания. См. C.7.1(19).
- Гранularity блокировки для Task_Attributes. См. C.7.2(16/1).
- Ограничения на количество и размер атрибутов задачи, а также на их настройку. См. C.7.2(19).
- Значения всех метрик. См. D(2).
- Объявления Any_Priority и Priority. См. D.1(11).
- Реализуемые ресурсы выполнения. См. D.1(15).
- В случае многопроцессорной системы, остается ли загрузка процессора задачей, ожидавшей доступа к защищенному объекту. См. D.2.1(3).
- Воздействие реализуемых ресурсов выполнения на диспетчеризацию задач. См. D.2.1(9).
- Реализуемые policy_идентификаторы , разрешенные в директиве Task_Dispatching_Policy. См. D.2.2(3).
- Реализуемые аспекты инверсии приоритетов. См. D.2.2(16).
- Реализуемая диспетчеризация задач. См. D.2.2(18).
- Реализуемые policy_идентификаторы , разрешенные в директиве Locking_Policy. См. D.3(4).
- По умолчанию приоритеты потолка. См. D.3(10).
- Потолок любого защищенного объекта, используемого реализацией внутри. См. D.3(16).
- Реализуемые политики очереди. См. D.4(1/1).
- В многопроцессорной системе любые условия, приводящие к задержке завершения прерванной конструкции, по сравнению с указанным для однопроцессорной системы. См. D.6(3).
- Любые операции, которые неявно требуют выделения памяти кучи. См. D.7(8).
- Реализуемые аспекты директивы Restrictions. См. D.7(20).
- Реализуемые аспекты пакета Real_Time. См. D.8(17).
- Реализуемые аспекты delay_statementов. См. D.9(8).
- Верхняя граница продолжительности блокировки прерываний, вызванной реализацией. См. D.12(5).
- Способы создания и выполнения распределенных программ. См. E(5).
- Любые события, которые могут привести к невозможности доступа к разделу. См. E.1(7).
- Политики планирования, обработка приоритетов и управление общими ресурсами между разделами в некоторых случаях. См. E.1(11).
- Этот абзац был удален.
- Будет ли немедленно прервано выполнение удаленной подпрограммы в результате отмены. См. E.4(13).
- Реализуемые аспекты PCS. См. E.5(25).
- Реализуемые интерфейсы в PCS. См. E.5(26).
- Значения именованных чисел в пакете Decimal. См. F.2(7).
- Значение Max_Picture_Length в пакете Text_IO.Editing См. F.3.3(16).
- Значение Max_Picture_Length в пакете Wide_Text_IO.Editing См. F.3.4(5).
- Точность, фактически достигнутая комплексными элементарными функциями и другими комплексными арифметическими операциями. См. G.1(1).
- Знак нулевого результата (или его компонента) от любого оператора или функции в Numerics.Generic_Complex_Types, когда Real'Signed_Zeros равен True. См. G.1.1(53).
- Знак нулевого результата (или его компонента) от любого оператора или функции в Numerics.Generic_Complex_Elementary_Functions, когда Complex_Types.Real'Signed_Zeros равен True. См. G.1.2(45).
- Какой режим (строгий или ослабленный) используется по умолчанию. См. G.2(2).
- Интервал результата в некоторых случаях преобразования фиксированной точки в плавающую. См. G.2.1(10).
- Результат операции с плавающей точкой в ситуациях переполнения, когда атрибут Machine_Overflows типа результата равен False. См. G.2.1(13).
- Интервал результата для деления (или возведения в степень с отрицательным показателем), когда аппаратное обеспечение плавающей точки реализует деление как умножение на обратную величину. См. G.2.1(16).
- Определение набора близких результатов, которое определяет точность некоторых операций умножения и деления с фиксированной точкой. См. G.2.3(5).
- Условия для операнда universal_real умножения или деления с фиксированной точкой, для которых результат должен быть в наборе идеальных результатов. См. G.2.3(22).
- Результат арифметической операции с фиксированной точкой в ситуациях переполнения, когда атрибут Machine_Overflows типа результата равен False. См. G.2.3(27).
- Результат вызова элементарной функции в ситуациях переполнения, когда атрибут Machine_Overflows типа результата равен False. См. G.2.4(4).
- Точность некоторых элементарных функций для параметров, выходящих за пределы порогового угла. См. G.2.4(10).
- Значение порогового угла, в пределах которого некоторые элементарные функции, комплексные арифметические операции и комплексные элементарные функции дают результаты, соответствующие максимальной относительной погрешности. См. G.2.4(10).
- Результат комплексной арифметической операции или вызова комплексной элементарной функции в ситуациях переполнения, когда атрибут Machine_Overflows соответствующего вещественного типа равен False. См. G.2.6(5).
- Точность некоторых комплексных арифметических операций и некоторых комплексных элементарных функций для параметров (или их компонентов), выходящих за пределы порогового угла. См. G.2.6(8).
- Информация о ограниченных ошибках и ошибочных выполнениях. См. H.2(1).
- Реализуемые аспекты директивы Inspection_Point. См. H.3.2(8).
- Реализуемые аспекты директивы Restrictions. См. H.4(25).
- Любые ограничения на директиву Restrictions. См. H.4(27).