Справочник Ada 2012
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. См. 2.1(4/3).
- Семантика программы Ada, текст которой не находится в нормальной форме KC. См. 2.1(4.1/3).
- Этот абзац был удален.
- Представление конца строки. См. 2.2(2/3).
- Максимальная длина строки и длина лексического элемента. См. 2.2(14).
- Реализационно-зависимые директивы. См. 2.8(14).
- Влияние директивы Optimize. См. 2.8(27).
- Строка сообщения, связанная с исключением Assertion_Error, которое возникает при неудачной проверке предиката, если нет аспекта Predicate_Failure. См. 3.2.4(31).
- Последовательность символов значения, возвращаемого S'Wide_Image, если некоторые графические символы из S'Wide_Wide_Image не определены в Wide_Character. См. 3.5(30/3).
- Последовательность символов значения, возвращаемого S'Image, если некоторые графические символы из S'Wide_Wide_Image не определены в Character. См. 3.5(37/3).
- Предопределённые целочисленные типы, объявленные в 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.Wide_Wide_Expanded_Name для типов, объявленных внутри безымянного block_statement. См. 3.9(10).
- Последовательность символов значения, возвращаемого Tags.Expanded_Name (соответственно, Tags.Wide_Expanded_Name), если некоторые графические символы из Tags.Wide_Wide_Expanded_Name не определены в Character (соответственно, Wide_Character). См. 3.9(10.1/2).
- Реализационно-зависимые атрибуты. См. 4.1.4(12/1).
- Округление вещественных статических выражений, которые точно находятся посредине между двумя машинными числами. См. 4.9(38/2).
- Любые реализационно-зависимые типы времени. См. 9.6(6/3).
- База времени, связанная с относительными задержками. См. 9.6(20).
- База времени типа Calendar.Time. См. 9.6(23).
- Часовой пояс, используемый для операций пакета Calendar. См. 9.6(24/2).
- Любые ограничения на delay_until_statementы select_statementов. См. 9.6(29).
- Результат Calendar.Formating.Image, если его аргумент представляет более 100 часов. См. 9.6.1(86/2).
- Этот абзац был удален.
- Представление compilation. См. 10.1(2).
- Любые ограничения на compilationы, содержащие несколько compilation_unitов. См. 10.1(4).
- Механизмы создания среды и добавления и замены единиц компиляции. См. 10.1.4(3/2).
- Механизмы добавления единицы компиляции, упомянутой в limited_with_clause, в среду. См. 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/3).
- Информация, возвращаемая Exception_Message. См. 11.4.1(10.1/4).
- Результат Exceptions.Wide_Wide_Exception_Name для исключений, объявленных внутри безымянного block_statement. См. 11.4.1(12).
- Последовательность символов значения, возвращаемого Exceptions.Exception_Name (соответственно, Exceptions.Wide_Exception_Name), если некоторые графические символы из Exceptions.Wide_Wide_Exception_Name не определены в Character (соответственно, Wide_Character). См. 11.4.1(12.1/2).
- Информация, возвращаемая Exception_Information. См. 11.4.1(13/2).
- Реализационно-зависимые policy_identifierы и assertion_aspect_markы, разрешённые в pragma Assertion_Policy. См. 11.4.2(9/3).
- Политика утверждений по умолчанию. См. 11.4.2(10).
- Реализационно-зависимые имена проверок. См. 11.5(27).
- Случаи, которые вызывают конфликты между представлением предков type_declaration. См. 13.1(13.1/3).
- Интерпретация каждого аспекта представления. См. 13.1(20).
- Любые ограничения, наложенные на указание аспектов представления. См. 13.1(20).
- Реализационно-зависимые аспекты, включая синтаксис для указания таких аспектов и правила допустимости для таких аспектов. См. 13.1.1(38).
- Набор машинных скаляров. См. 13.3(8.1/3).
- Значение Size для неопределённых подтипов. См. 13.3(48).
- Предпочтительное внешнее представление для тега типа. См. 13.3(75/3).
- Что определяет, является ли единица компиляции одинаковой в двух разных разделах. См. 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_statementов. См. 13.8(7).
- Результат неявного преобразования для экземпляров со скалярными типами результата, чьи результаты не определены языком. См. 13.9(11).
- Влияние неявного преобразования для экземпляров с нескалярными типами результата, чьё влияние не определено языком. См. 13.9(11).
- Этот абзац был удален.
- Предоставляет ли реализация имена, доступные пользователю, для стандартного типа/типов пула. См. 13.11(17).
- Значение Storage_Size, когда ни Storage_Size, ни Storage_Pool не указаны для типа доступа. См. 13.11(18).
- Этот абзац был удален.
- Влияние указания аспекта Default_Storage_Pool на экземпляр языкового обобщенного модуля. См. 13.11.3(5).
- Этот абзац был удален.
- Содержание потоковых элементов, считываемых и записываемых атрибутами 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.Float_Random.Max_Image_Width. См. A.5.2(27).
- Значение Numerics.Discrete_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/3).
- Результаты поиска в Directories, если содержимое каталога изменяется во время поиска. См. A.16(110/3).
- Определение и значение переменной среды. См. 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/3).
- Значение имён ссылок. См. 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/3).
- Этот абзац был удален.
- Этот абзац был удален.
- Любые ограничения на защищенную процедуру или содержащий её тип, когда указан аспект Attach_handler или Interrupt_Handler. См. C.3.1(17).
- Другие формы обработчиков прерываний, поддерживаемые аспектами Attach_Handler и Interrupt_Handler. См. C.3.1(19).
- Этот абзац был удален.
- Семантика некоторых атрибутов и функций сущности, для которой аспект Discard_Names равен True. См. C.5(7).
- Результат атрибута Task_Identification.Image. См. C.7.1(7).
- Значение Current_Task при нахождении в защищённом входе, обработчике прерывания или завершении атрибута задачи. См. C.7.1(17/3).
- Этот абзац был удален.
- Дробность блокировки для 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(19).
- Значение Default_Quantum в Dispatching.Round_Robin. См. D.2.5(4).
- Определяемые реализацией policy_identifierы, разрешенные в pragma Locking_Policy. См. D.3(4).
- Политика блокировки, если никакое pragma Locking_Policy не применяется к любому модулю раздела. См. D.3(6).
- Установленные приоритеты потолка. См. D.3(10/4).
- Потолок любого защищённого объекта, используемого реализацией внутри. См. D.3(16).
- Определяемые реализацией политики очередей. См. D.4(1/3).
- Этот абзац был удален.
- Любые операции, которые неявно требуют выделения памяти кучи. См. D.7(8).
- Когда ограничение No_Dynamic_CPU_Assignment применяется к разделу, процессор, на котором будет выполняться задача с CPU значением Not_A_Specific_CPU. См. D.7(10).
- Когда ограничение 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).
- Приведёт ли использование pragma Restrictions к сокращению размера кода или данных программы или времени выполнения. См. D.7(20).
- Этот абзац был удален.
- Этот абзац был удален.
- Значение Barrier_Limit'Last в Synchronous_Barriers. См. D.10.1(4/3).
- Что происходит, когда абортированная задача, ожидающая на Synchronous_Barrier, абортируется. См. D.10.1(13/3).
- Этот абзац был удален.
- Значение Min_Handler_Ceiling в Execution_Time.Group_Budgets. См. D.14.2(7/2).
- Значение CPU_Range'Last в System.Multiprocessors. См. D.16(4/3).
- Процессор, на котором выполняется задача среды при отсутствии значения для аспекта CPU. См. D.16(13/3).
- Средства для создания и выполнения распределённых программ. См. 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).
- Определение набора результатов близких по значению, которое определяет точность некоторых умножений и делений с фиксированной точкой. См. 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).
- Требования к точности подпрограмм 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_идентификаторы, разрешенные в псевдокоманде Partition_Elaboration_Policy. См. H.6(4/2).