Ada 2005 Справочник
M.2 Реализационно-зависимые характеристики
Язык Ada допускает определённую зависимость от машины. Каждая реализация Ada должна документировать все реализационно-зависимые характеристики:
- Следуются ли все рекомендации, данные в Рекомендациях по реализации — см. M.3, «Рекомендации по реализации» для перечня. См. 1.1.2(37).
- Ограничения по емкости реализации. См. 1.1.3(3).
- Отклонения от стандарта, которые трудно избежать, учитывая среду выполнения реализации. См. 1.1.3(6).
- Какие code_statement вызывают внешние взаимодействия. См. 1.1.3(10).
- Семантика программы Ada, текст которой не находится в нормальной форме KC. См. 2.1(4.1/2).
- Кодированное представление текста программы Ada. См. 2.1(4/2).
- Этот абзац был удалён.
- Представление конца строки. См. 2.2(2/2).
- Максимальная длина строки и длина лексического элемента. См. 2.2(14).
- Реализационно-зависимые пragma. См. 2.8(14).
- Эффект пragma Optimize. См. 2.8(27).
- Последовательность символов значения, возвращаемого S'Wide_Image, когда некоторые графические символы S'Wide_Wide_Image не определены в Wide_Character. См. 3.5(30/2).
- Последовательность символов значения, возвращаемого S'Image, когда некоторые графические символы S'Wide_Wide_Image не определены в Character. См. 3.5(37/2).
- Предопределённые целочисленные типы, объявленные в 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/2).
- Какие комбинации small, диапазона и digits поддерживаются для типов с фиксированной точкой. См. 3.5.9(10).
- Последовательность символов значения, возвращаемого Tags.Expanded_Name (соответственно, Tags.Wide_Expanded_Name), когда некоторые графические символы Tags.Wide_Wide_Expanded_Name не определены в Character (соответственно, Wide_Character). См. 3.9(10.1/2).
- Результат Tags.Wide_Wide_Expanded_Name для типов, объявленных в неопределённом block_statement. См. 3.9(10).
- Реализационно-зависимые атрибуты. См. 4.1.4(12/1).
- Округление вещественных статических выражений, которые находятся ровно посередине между двумя машинными числами. См. 4.9(38/2).
- Любые реализационно-зависимые типы времени. См. 9.6(6).
- База времени, связанная с относительными задержками. См. 9.6(20).
- База времени типа Calendar.Time. См. 9.6(23).
- Часовой пояс, используемый для операций пакета Calendar. См. 9.6(24/2).
- Любые ограничения на delay_until_statements select_statements. См. 9.6(29).
- Результат Calendar.Formating.Image, если его аргумент представляет более 100 часов. См. 9.6.1(86/2).
- Взаимодействие между двумя неперекрывающимися частями составного объекта, когда для объекта указано упаковку, структуру записи или Component_Size. См. 9.10(1).
- Представление compilation. См. 10.1(2).
- Любые ограничения на compilations, которые содержат несколько compilation_units. См. 10.1(4).
- Механизмы добавления модуля компиляции, упомянутого в limited_with_clause в среду. См. 10.1.4(3/2).
- Механизмы создания среды и добавления и замены модулей компиляции. См. 10.1.4(3/2).
- Реализационно-зависимые средства (если таковые имеются) указания необходимых модулей компиляции для данного модуля. См. 10.2(2).
- Способ явного назначения библиотек в раздел. См. 10.2(2).
- Способ обозначения основной подпрограммы раздела. См. 10.2(7).
- Порядок обработки элементов библиотеки library_item. См. 10.2(18).
- Передача параметров и возвращение функции для основной подпрограммы. См. 10.2(21).
- Механизмы построения и запуска разделов. См. 10.2(24).
- Подробности выполнения программы, включая завершение программы. См. 10.2(25).
- Семантика любых неактивных разделов, поддерживаемых реализацией. См. 10.2(28).
- Информация, возвращаемая Exception_Message. См. 11.4.1(10.1/2).
- Последовательность символов значения, возвращаемого Exceptions.Exception_Name (соответственно, Exceptions.Wide_Exception_Name), когда некоторые графические символы Exceptions.Wide_Wide_Exception_Name не определены в Character (соответственно, Wide_Character). См. 11.4.1(12.1/2).
- Результат Exceptions.Wide_Wide_Exception_Name для исключений, объявленных в неопределённом block_statement. См. 11.4.1(12).
- Информация, возвращаемая Exception_Information. См. 11.4.1(13/2).
- Реализационно-зависимые policy_identifiers, разрешённые в pragma Assertion_Policy. См. 11.4.2(9/2).
- Политика утверждения по умолчанию. См. 11.4.2(10/2).
- Реализационно-зависимые имена проверок. См. 11.5(27).
- Случаи, вызывающие конфликты между представлением предков type_declaration. См. 13.1(13.1/2).
- Ограничения, наложенные на элементы представления. См. 13.1(20).
- Интерпретация каждого аспекта представления. См. 13.1(20).
- Набор машинных скаляров. См. 13.3(8.1/2).
- Значение 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).
- Диапазон Storage_Elements.Storage_Offset, модуль Storage_Elements.Storage_Element и объявление Storage_Elements.Integer_Address. См. 13.7.1(11).
- Содержимое видимой части пакета System.Machine_Code и значение code_statements. См. 13.8(7).
- Эффект неявного преобразования для экземпляров с нескалярными типами результатов, эффект которых не определен языком. См. 13.9(11).
- Результат неявного преобразования для экземпляров со скалярными типами результатов, результат которого не определен языком. См. 13.9(11).
- Предоставляет ли реализация имена, доступные пользователю, для стандартного типа(ов) пула. См. 13.11(17).
- Этот абзац был удален.
- Значение Storage_Size, когда ни Storage_Size, ни Storage_Pool не указаны для типа доступа. См. 13.11(18).
- Этот абзац был удален.
- Содержимое элементов потока, считываемых и записываемых атрибутами Read и Write элементарных типов. См. 13.13.2(9).
- Названия и характеристики числовых подтипов, объявленных в видимой части пакета Standard. См. A.1(3).
- Значения, возвращаемые Strings.Hash. См. A.4.9(3/2).
- Точность, фактически достигнутая элементарными функциями. См. 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(38).
- Этот абзац был удален.
- Значения атрибутов Model_Mantissa, Model_Emin, Model_Epsilon, Model, Safe_First и Safe_Last, если Приложение Numerics не поддерживается. См. A.5.3(72).
- Этот абзац был удален.
- Значение 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 для пакета Command_Line. Границы типа Command_Line.Exit_Status. См. A.15(1).
- Интерпретация имён файлов и каталогов. См. A.16(46/2).
- Максимальное значение размера файла в Directories. См. A.16(87/2).
- Результат Directories.Size для каталога или специального файла. См. A.16(93/2).
- Результат Directories.Modification_Time для каталога или специального файла. См. A.16(95/2).
- Интерпретация непустого шаблона поиска в Directories. См. A.16(104/2).
- Результаты поиска Directories, если содержимое каталога изменяется во время поиска. См. A.16(110/2).
- Определение и значение переменной среды. См. A.17(1/2).
- Случаи, когда переменная среды не может быть определена. См. A.17(16/2).
- Имена переменных среды, для которых Set имеет эффект Clear. См. A.17(17/2).
- Значение Containers.Hash_Type'Modulus. Значение Containers.Count_Type'Last. См. A.18.1(7/2).
- Названия конвенций, определённые реализацией. См. B.1(11).
- Способ выбора имён связей, когда ни имя связи, ни адрес импортированного или экспортированного сущности не указаны. См. B.1(36).
- Значение имён связей. См. B.1(36).
- Эффект pragma Linker_Options. См. B.1(37).
- Содержимое видимой части пакета Interfaces и его определённых языком потомков. См. B.2(1).
- Потомки пакета 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).
- Этот абзац был удален.
- Этот абзац был удален.
- Любые ограничения на защищённую процедуру или содержащий её тип, когда применяется pragma Attach_handler или Interrupt_Handler. См. C.3.1(17).
- Любые другие формы обработчика прерываний, поддерживаемые pragmas Attach_Handler и Interrupt_Handler. См. C.3.1(19).
- Этот абзац был удален.
- Семантика pragma Discard_Names. См. C.5(7).
- Результат атрибута Task_Identification.Image. См. C.7.1(7).
- Значение Current_Task при нахождении в защищённом входе, обработчике прерывания или завершении атрибута задачи. См. C.7.1(17/2).
- Этот абзац был удален.
- Грань блокировки для Task_Attributes. См. C.7.2(16/1).
- Этот абзац был удален.
- Этот абзац был удален.
- Объявления Any_Priority и Priority. См. D.1(11).
- Ресурсы исполнения, определённые реализацией. См. D.1(15).
- На многопроцессорных системах, задача, ожидающая доступа к защищенному объекту, продолжает ли использовать свой процессор. См. D.2.1(3).
- Влияние ресурсов исполнения, определённых реализацией, на распределение задач. См. D.2.1(9/2).
- Этот абзац был удален.
- Этот абзац был удален.
- Политики распределения задач, определённые реализацией. См. D.2.2(18).
- Значение Default_Quantum в Dispatching.Round_Robin. См. D.2.5(4).
- Определяемые реализацией идентификаторы policy_identifiers, разрешенные в pragma Locking_Policy. См. D.3(4).
- Политика блокировки, если для любого блока раздела не применяется pragma Locking_Policy. См. D.3(6).
- Умолчательные приоритеты потолка. См. D.3(10/2).
- Потолок любого защищённого объекта, используемого реализацией внутри. См. D.3(16).
- Политики очередей, определяемые реализацией. См. D.4(1/1).
- Этот абзац был удалён.
- Любые операции, которые неявно требуют выделения памяти на куче. См. D.7(8).
- Когда ограничение No_Task_Termination применяется к разделу, что происходит при завершении задачи. См. D.7(15.1/2).
- Поведение при нарушении ограничения Max_Storage_At_Blocking. См. D.7(17/1).
- Поведение при нарушении ограничения Max_Asynchronous_Select_Nesting. См. D.7(18/1).
- Поведение при нарушении ограничения Max_Tasks. См. D.7(19).
- Приведёт ли использование pragmas Restrictions к уменьшению размера кода, данных или времени выполнения программы. См. D.7(20).
- Этот абзац был удалён.
- Этот абзац был удалён.
- Этот абзац был удалён.
- Средства создания и выполнения распределённых программ. См. E(5).
- Любые события, которые могут привести к тому, что раздел станет недоступным. См. E.1(7).
- Политики планирования, обработка приоритетов и управление общими ресурсами между разделами в определённых случаях. См. E.1(11).
- Этот абзац был удалён.
- Будет ли сразу прервано выполнение удалённой подпрограммы в результате отмены. См. E.4(13).
- Диапазон типа System.RPC.Partition_Id. См. E.5(14).
- Этот абзац был удалён.
- Определяемые реализацией интерфейсы в 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).
- Значение Max_Picture_Length в пакете Wide_Wide_Text_IO.Editing. См. F.3.5(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).
- Определение набора close result, которое определяет точность некоторых умножений и делений с фиксированной точкой. См. G.2.3(5).
- Условия для операнда universal_real при умножении или делении с фиксированной точкой, для которых результат должен находиться в наборе perfect result. См. 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).
- Требования к точности подпрограмм Solve, Inverse, Determinant, Eigenvalues и Eigensystem для типа Real_Matrix. См. G.3.1(81/2).
- Требования к точности подпрограмм Solve, Inverse, Determinant, Eigenvalues и Eigensystem для типа Complex_Matrix. См. G.3.2(149/2).
- Этот абзац был удалён.
- Этот абзац был удалён.
- Этот абзац был удалён.
- Этот абзац был удалён.
- Определяемые реализацией policy_идентификаторы, разрешённые в pragma Partition_Elaboration_Policy. См. H.6(4/2).