Spec-Zone.ru › Ada 2022
Справочник по Аде (Ada 2022)

M.2 Реализационно-зависимые характеристики

Язык Ада допускает определённую зависимость от машины контролируемым образом. Каждая реализация Ады должна документировать все реализационно-зависимые характеристики:
  • Следуют ли рекомендации, содержащиеся в разделе Рекомендации по реализации — см. M.3 для списка. См. 1.1.2(37).
  • Ограничения по ёмкости реализации. См. 1.1.3(3).
  • Отклонения от стандарта, которые трудно избежать, учитывая среду выполнения реализации. См. 1.1.3(6).
  • Какие code_statement вызывают внешние взаимодействия. См. 1.1.3(10).
  • Кодированное представление текста программы на Аде. См. 2.1(4/5).
  • Семантика программы на Аде, текст которой не находится в Нормальной форме C. См. 2.1(4.1/5).
  • Этот абзац был удалён.
  • Представление конца строки. См. 2.2(2/3).
  • Максимальная длина строки и длина лексического элемента. См. 2.2(14).
  • Реализационно-зависимые директивы. См. 2.8(14).
  • Влияние директивы Optimize. См. 2.8(27).
  • Строка сообщения, связанная с исключением Assertion_Error, которое возникает из-за неудачи проверки предиката, если нет соответствующего аспекта Predicate_Failure. См. 3.2.4(31).
  • Предопределённые целочисленные типы, объявленные в Standard. См. 3.5.4(25).
  • Любые нестандартные целочисленные типы и операторы, определённые для них. См. 3.5.4(26/5).
  • Любые нестандартные вещественные типы и операторы, определённые для них. См. 3.5.6(8/5).
  • Какие комбинации запрошенной десятичной точности и диапазона поддерживаются для типов с плавающей точкой. См. 3.5.7(7).
  • Предопределённые типы с плавающей точкой, объявленные в Standard. См. 3.5.7(16/5).
  • 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/5).
  • Значение параметра для Empty для некоторых container_aggregate. См. 4.3.5(40).
  • Максимальное количество фрагментов для параллельного выражения с сокращением без chunk_specification. См. 4.5.10(21).
  • Округление вещественных статических выражений, которые находятся точно посередине между двумя машинами. См. 4.9(38/2).
  • Максимальное количество фрагментов для параллельного обобщённого итератора без chunk_specification. См. 5.5.2(10).
  • Количество фрагментов для итератора компонента массива. См. 5.5.2(11).
  • Расширения аспекта Global. См. 6.1.2(43).
  • Обстоятельства, при которых реализация передаёт нулевое значение для преобразования представления типа доступа, используемого в качестве параметра out. См. 6.4.1(19/5).
  • Любые расширения аспекта Default_Initial_Condition. См. 7.3.3(11).
  • Любые реализационно-зависимые типы времени. См. 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.Formatting.Image, если его аргумент представляет более 100 часов. См. 9.6.1(86/5).
  • Этот абзац был удалён.
  • Реализационно-зависимые политики проверки конфликтов. См. 9.10.1(5).
  • Представление 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/5).
  • Подробности выполнения программы, включая завершение программы. См. 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_marks, разрешённые в директиве Assertion_Policy. См. 11.4.2(9/5).
  • Политика проверки по умолчанию. См. 11.4.2(10).
  • Реализационно-зависимые имена проверок. См. 11.5(27).
  • Существование и смысл второго параметра директивы Unsuppress. См. 11.5(27.1/2).
  • Случаи, которые вызывают конфликты между представлением предков 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).
  • Значение Object_Size для неопределённых подтипов. См. 13.3(58).
  • Стандартное внешнее представление тега типа. См. 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).
  • Этот абзац был удалён.
  • Ограничения, определённые реализацией, разрешенные в pragma Restrictions. См. 13.12(8.7/3).
  • Последствия нарушения ограничений в pragma Restrictions. См. 13.12(9).
  • Профили использования, определённые реализацией, разрешенные в pragma Profile. См. 13.12(15).
  • Содержимое элементов потока, считываемых и записываемых атрибутами Read и Write элементарных типов. См. 13.13.2(9).
  • Имена и характеристики числовых подтипов, объявленных в видимой части пакета Standard. См. A.1(3).
  • Значения, возвращаемые Strings.Hash. См. A.4.9(3/2).
  • Значение, возвращаемое процедурой Text_Buffer Get, если любой символ в возвращаемой последовательности не определён в Character. См. A.4.12(34).
  • Значение, возвращаемое процедурой Text_Buffer Wide_Get, если любой символ в возвращаемой последовательности не определён в Wide_Character. См. A.4.12(34).
  • Точность, фактически достигнутая элементарными функциями. См. 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).
  • Модуль и размер Test_and_Set_Flag. См. C.6.3(8).
  • Значение, используемое для представления установленного значения для Atomic_Test_and_Set. См. C.6.3(10).
  • Результат атрибута 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/5).
  • На многопроцессорной системе, задача, ожидающая доступа к защищённому объекту, удерживает ли она свой процессор занятым. См. D.2.1(3).
  • Влияние ресурсов выполнения, определённых реализацией, на планирование задач. См. D.2.1(9/2).
  • Этот абзац был удалён.
  • Этот абзац был удалён.
  • Политики планирования задач, определённые реализацией. См. D.2.2(18).
  • Значение 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/5).
  • Политики допуска, определённые реализацией. См. D.4.1(1).
  • Этот абзац был удалён.
  • Любые операции, которые неявно требуют выделения памяти кучи. См. 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).
  • Приводит ли использование псевдонима 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).
  • Этот абзац был удален.
  • Этот абзац был удален.
  • Последствия нарушения No_Hidden_Indirect_Globals. См. H.4(23.9/5).
  • Этот абзац был удален.
  • Этот абзац был удален.
  • Определяемые реализацией policy_идентификаторы, разрешенные в псевдониме Partition_Elaboration_Policy. См. H.6(4/2).


Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API