Справочник по Ada 2012
Приложение A
(нормативное)
Предопределённая языковая среда
Это приложение содержит спецификации библиотек, которые должны предоставляться каждой реализацией. Существуют три корневых библиотечных модуля: Ada, Interfaces и System; другие библиотечные модули являются потомками этих.
Стандарт — A.1
Ada — A.2
Утверждения — 11.4.2
Asynchronous_Task_Control — D.11
Календарь — 9.6
Арифметика — 9.6.1
Форматирование — 9.6.1
Временные зоны — 9.6.1
Символы — A.3.1
Преобразования — A.3.4
Обработка — A.3.2
Latin_1 — A.3.3
Командная строка — A.15
Complex_Text_IO — G.1.3
Контейнеры — A.18.1
Ограниченные двусвязные списки
— A.18.20
Ограниченные хеш-карты — A.18.21
Ограниченные множества — A.18.23
Ограниченные многопутевые деревья — A.18.25
Ограниченные упорядоченные карты — A.18.22
Ограниченные упорядоченные множества — A.18.24
Ограниченные приоритетные очереди — A.18.31
Ограниченные синхронизированные очереди
— A.18.29
Ограниченные векторы — A.18.19
Двусвязные списки — A.18.3
Generic_Array_Sort — A.18.26
Generic_Constrained_Array_Sort
— A.18.26
Generic_Sort — A.18.26
Hashed_Maps — A.18.5
Hashed_Sets — A.18.8
Неопределённые двусвязные списки
— A.18.12
Неопределённые хеш-карты — A.18.13
Неопределённые хеш-множества — A.18.15
Неопределённые держатели — A.18.18
Неопределённые многопутевые деревья — A.18.17
Неопределённые упорядоченные карты — A.18.14
Неопределённые упорядоченные множества — A.18.16
Неопределённые векторы — A.18.11Стандарт (...продолжение)
Ada (...продолжение)
Контейнеры (...продолжение)
Многопутевые деревья — A.18.10
Упорядоченные карты — A.18.6
Упорядоченные множества — A.18.9
Синхронизированные интерфейсы очереди
— A.18.27
Неограниченные приоритетные очереди
— A.18.30
Неограниченные синхронизированные очереди
— A.18.28
Векторы — A.18.2
Десятичное — F.2
Direct_IO — A.8.4
Каталоги — A.16
Иерархические имена файлов — A.16.1
Информация — A.16
Распределение — D.2.1
EDF — D.2.6
Непрерывно — D.2.4
Круговой цикл — D.2.5
Динамические приоритеты — D.5.1
Переменные среды — A.17
Исключения — 11.4.1
Время выполнения — D.14
Бюджеты групп — D.14.2
Прерывания — D.14.3
Таймеры — D.14.1
Завершение — 7.6
Float_Text_IO — A.10.9
Float_Wide_Text_IO — A.11
Float_Wide_Wide_Text_IO — A.11
Integer_Text_IO — A.10.8
Integer_Wide_Text_IO — A.11
Integer_Wide_Wide_Text_IO — A.11
Прерывания — C.3.2
Имена — C.3.2
IO_Exceptions — A.13
Iterator_Interfaces — 5.5.1
Локали — A.19
Стандарт (...продолжение)
Ada (...продолжение)
Числа — A.5
Комплексные массивы — G.3.2
Комплексные элементарные функции — G.1.2
Комплексные типы — G.1.1
Дискретные случайные — A.5.2
Элементарные функции — A.5.1
Float_Random — A.5.2
Generic_Complex_Arrays — G.3.2
Generic_Complex_Elementary_Functions
— G.1.2
Generic_Complex_Types — G.1.1
Generic_Elementary_Functions — A.5.1
Generic_Real_Arrays — G.3.1
Real_Arrays — G.3.1
Реальное время — D.8
События тайминга — D.15
Последовательный ввод-вывод — A.8.1
Ввод-вывод памяти — A.9
Потоки — 13.13.1
Stream_IO — A.12.1
Строки — A.4.1
Ограниченные — A.4.4
Equal_Case_Insensitive — A.4.10
Хеш — A.4.9
Hash_Case_Insensitive — A.4.9
Less_Case_Insensitive — A.4.10
Fixed — A.4.3
Equal_Case_Insensitive — A.4.10
Хеш — A.4.9
Hash_Case_Insensitive — A.4.9
Less_Case_Insensitive — A.4.10
Equal_Case_Insensitive — A.4.10
Хеш — A.4.9
Hash_Case_Insensitive — A.4.9
Less_Case_Insensitive — A.4.10
Карты — A.4.2
Константы — A.4.6
Неограниченные — A.4.5
Equal_Case_Insensitive — A.4.10
Хеш — A.4.9
Hash_Case_Insensitive — A.4.9
Less_Case_Insensitive — A.4.10
UTF_Encoding — A.4.11
Преобразования — A.4.11
Строки — A.4.11
Wide_Strings — A.4.11
Wide_Wide_Strings — A.4.11
Стандарт (...продолжение)
Ada (...продолжение)
Строки (...продолжение)
Wide_Bounded — A.4.7
Wide_Equal_Case_Insensitive
— A.4.7
Wide_Hash — A.4.7
Wide_Hash_Case_Insensitive — A.4.7
Wide_Equal_Case_Insensitive — A.4.7
Wide_Fixed — A.4.7
Wide_Equal_Case_Insensitive
— A.4.7
Wide_Hash — A.4.7
Wide_Hash_Case_Insensitive — A.4.7
Wide_Hash — A.4.7
Wide_Hash_Case_Insensitive — A.4.7
Wide_Maps — A.4.7
Wide_Constants — A.4.7
Wide_Unbounded — A.4.7
Wide_Equal_Case_Insensitive
— A.4.7
Wide_Hash — A.4.7
Wide_Hash_Case_Insensitive — A.4.7
Wide_Wide_Bounded — A.4.8
Wide_Wide_Equal_Case_Insensitive
— A.4.8
Wide_Wide_Hash — A.4.8
Wide_Wide_Hash_Case_Insensitive
— A.4.8
Wide_Wide_Equal_Case_Insensitive
— A.4.8
Wide_Wide_Fixed — A.4.8
Wide_Wide_Equal_Case_Insensitive
— A.4.8
Wide_Wide_Hash — A.4.8
Wide_Wide_Hash_Case_Insensitive
— A.4.8
Wide_Wide_Hash — A.4.8
Wide_Wide_Hash_Case_Insensitive
— A.4.8
Wide_Wide_Maps — A.4.8
Wide_Wide_Constants — A.4.8
Wide_Wide_Unbounded — A.4.8
Wide_Wide_Equal_Case_Insensitive
— A.4.8
Wide_Wide_Hash — A.4.8
Wide_Wide_Hash_Case_Insensitive
— A.4.8
Synchronous_Barriers — D.10.1
Synchronous_Task_Control — D.10
EDF — D.10
END_OF_DOCUMENT_MARKER Ada — A.2
Утверждения — 11.4.2
Asynchronous_Task_Control — D.11
Календарь — 9.6
Арифметика — 9.6.1
Форматирование — 9.6.1
Временные зоны — 9.6.1
Символы — A.3.1
Преобразования — A.3.4
Обработка — A.3.2
Latin_1 — A.3.3
Командная строка — A.15
Complex_Text_IO — G.1.3
Контейнеры — A.18.1
Ограниченные двусвязные списки
— A.18.20
Ограниченные хеш-карты — A.18.21
Ограниченные множества — A.18.23
Ограниченные многопутевые деревья — A.18.25
Ограниченные упорядоченные карты — A.18.22
Ограниченные упорядоченные множества — A.18.24
Ограниченные приоритетные очереди — A.18.31
Ограниченные синхронизированные очереди
— A.18.29
Ограниченные векторы — A.18.19
Двусвязные списки — A.18.3
Generic_Array_Sort — A.18.26
Generic_Constrained_Array_Sort
— A.18.26
Generic_Sort — A.18.26
Hashed_Maps — A.18.5
Hashed_Sets — A.18.8
Неопределённые двусвязные списки
— A.18.12
Неопределённые хеш-карты — A.18.13
Неопределённые хеш-множества — A.18.15
Неопределённые держатели — A.18.18
Неопределённые многопутевые деревья — A.18.17
Неопределённые упорядоченные карты — A.18.14
Неопределённые упорядоченные множества — A.18.16
Неопределённые векторы — A.18.11Стандарт (...продолжение)
Ada (...продолжение)
Контейнеры (...продолжение)
Многопутевые деревья — A.18.10
Упорядоченные карты — A.18.6
Упорядоченные множества — A.18.9
Синхронизированные интерфейсы очереди
— A.18.27
Неограниченные приоритетные очереди
— A.18.30
Неограниченные синхронизированные очереди
— A.18.28
Векторы — A.18.2
Десятичное — F.2
Direct_IO — A.8.4
Каталоги — A.16
Иерархические имена файлов — A.16.1
Информация — A.16
Распределение — D.2.1
EDF — D.2.6
Непрерывно — D.2.4
Круговой цикл — D.2.5
Динамические приоритеты — D.5.1
Переменные среды — A.17
Исключения — 11.4.1
Время выполнения — D.14
Бюджеты групп — D.14.2
Прерывания — D.14.3
Таймеры — D.14.1
Завершение — 7.6
Float_Text_IO — A.10.9
Float_Wide_Text_IO — A.11
Float_Wide_Wide_Text_IO — A.11
Integer_Text_IO — A.10.8
Integer_Wide_Text_IO — A.11
Integer_Wide_Wide_Text_IO — A.11
Прерывания — C.3.2
Имена — C.3.2
IO_Exceptions — A.13
Iterator_Interfaces — 5.5.1
Локали — A.19
Стандарт (...продолжение)
Ada (...продолжение)
Числа — A.5
Комплексные массивы — G.3.2
Комплексные элементарные функции — G.1.2
Комплексные типы — G.1.1
Дискретные случайные — A.5.2
Элементарные функции — A.5.1
Float_Random — A.5.2
Generic_Complex_Arrays — G.3.2
Generic_Complex_Elementary_Functions
— G.1.2
Generic_Complex_Types — G.1.1
Generic_Elementary_Functions — A.5.1
Generic_Real_Arrays — G.3.1
Real_Arrays — G.3.1
Реальное время — D.8
События тайминга — D.15
Последовательный ввод-вывод — A.8.1
Ввод-вывод памяти — A.9
Потоки — 13.13.1
Stream_IO — A.12.1
Строки — A.4.1
Ограниченные — A.4.4
Equal_Case_Insensitive — A.4.10
Хеш — A.4.9
Hash_Case_Insensitive — A.4.9
Less_Case_Insensitive — A.4.10
Fixed — A.4.3
Equal_Case_Insensitive — A.4.10
Хеш — A.4.9
Hash_Case_Insensitive — A.4.9
Less_Case_Insensitive — A.4.10
Equal_Case_Insensitive — A.4.10
Хеш — A.4.9
Hash_Case_Insensitive — A.4.9
Less_Case_Insensitive — A.4.10
Карты — A.4.2
Константы — A.4.6
Неограниченные — A.4.5
Equal_Case_Insensitive — A.4.10
Хеш — A.4.9
Hash_Case_Insensitive — A.4.9
Less_Case_Insensitive — A.4.10
UTF_Encoding — A.4.11
Преобразования — A.4.11
Строки — A.4.11
Wide_Strings — A.4.11
Wide_Wide_Strings — A.4.11
Стандарт (...продолжение)
Ada (...продолжение)
Строки (...продолжение)
Wide_Bounded — A.4.7
Wide_Equal_Case_Insensitive
— A.4.7
Wide_Hash — A.4.7
Wide_Hash_Case_Insensitive — A.4.7
Wide_Equal_Case_Insensitive — A.4.7
Wide_Fixed — A.4.7
Wide_Equal_Case_Insensitive
— A.4.7
Wide_Hash — A.4.7
Wide_Hash_Case_Insensitive — A.4.7
Wide_Hash — A.4.7
Wide_Hash_Case_Insensitive — A.4.7
Wide_Maps — A.4.7
Wide_Constants — A.4.7
Wide_Unbounded — A.4.7
Wide_Equal_Case_Insensitive
— A.4.7
Wide_Hash — A.4.7
Wide_Hash_Case_Insensitive — A.4.7
Wide_Wide_Bounded — A.4.8
Wide_Wide_Equal_Case_Insensitive
— A.4.8
Wide_Wide_Hash — A.4.8
Wide_Wide_Hash_Case_Insensitive
— A.4.8
Wide_Wide_Equal_Case_Insensitive
— A.4.8
Wide_Wide_Fixed — A.4.8
Wide_Wide_Equal_Case_Insensitive
— A.4.8
Wide_Wide_Hash — A.4.8
Wide_Wide_Hash_Case_Insensitive
— A.4.8
Wide_Wide_Hash — A.4.8
Wide_Wide_Hash_Case_Insensitive
— A.4.8
Wide_Wide_Maps — A.4.8
Wide_Wide_Constants — A.4.8
Wide_Wide_Unbounded — A.4.8
Wide_Wide_Equal_Case_Insensitive
— A.4.8
Wide_Wide_Hash — A.4.8
Wide_Wide_Hash_Case_Insensitive
— A.4.8
Synchronous_Barriers — D.10.1
Synchronous_Task_Control — D.10
EDF — D.10
Стандарт (...продолжение)
Ada (...продолжение)
Теги — 3.9
Generic_Dispatching_Constructor — 3.9
Task_Attributes — C.7.2
Task_Identification — C.7.1
Task_Termination — C.7.3
Text_IO — A.10.1
Bounded_IO — A.10.11
Complex_IO — G.1.3
Редактирование — F.3.3
Text_Streams — A.12.2
Unbounded_IO — A.10.12
Unchecked_Conversion — 13.9
Unchecked_Deallocate_Subpool — 13.11.5
Unchecked_Deallocation — 13.11.2
Wide_Characters — A.3.1
Обработка — A.3.5
Wide_Text_IO — A.11
Complex_IO — G.1.4
Редактирование — F.3.4
Text_Streams — A.12.3
Wide_Bounded_IO — A.11
Wide_Unbounded_IO — A.11
Wide_Wide_Characters — A.3.1
Обработка — A.3.6
Wide_Wide_Text_IO — A.11
Complex_IO — G.1.5
Редактирование — F.3.5
Text_Streams — A.12.4
Wide_Wide_Bounded_IO — A.11
Wide_Wide_Unbounded_IO — A.11
Ada (...продолжение)
Теги — 3.9
Generic_Dispatching_Constructor — 3.9
Task_Attributes — C.7.2
Task_Identification — C.7.1
Task_Termination — C.7.3
Text_IO — A.10.1
Bounded_IO — A.10.11
Complex_IO — G.1.3
Редактирование — F.3.3
Text_Streams — A.12.2
Unbounded_IO — A.10.12
Unchecked_Conversion — 13.9
Unchecked_Deallocate_Subpool — 13.11.5
Unchecked_Deallocation — 13.11.2
Wide_Characters — A.3.1
Обработка — A.3.5
Wide_Text_IO — A.11
Complex_IO — G.1.4
Редактирование — F.3.4
Text_Streams — A.12.3
Wide_Bounded_IO — A.11
Wide_Unbounded_IO — A.11
Wide_Wide_Characters — A.3.1
Обработка — A.3.6
Wide_Wide_Text_IO — A.11
Complex_IO — G.1.5
Редактирование — F.3.5
Text_Streams — A.12.4
Wide_Wide_Bounded_IO — A.11
Wide_Wide_Unbounded_IO — A.11
Система — 13.7
Преобразования_адреса_в_доступ — 13.7.2
Машинный_код — 13.8
Многопроцессорные_системы — D.16
Dispatching_Domains — D.16.1
RPC — E.5
Элементы_хранения — 13.7.1
Хранилища_памяти — 13.11
Подпулы — 13.11.4
Преобразования_адреса_в_доступ — 13.7.2
Машинный_код — 13.8
Многопроцессорные_системы — D.16
Dispatching_Domains — D.16.1
RPC — E.5
Элементы_хранения — 13.7.1
Хранилища_памяти — 13.11
Подпулы — 13.11.4
Требования к реализации
Реализация должна гарантировать, что каждая подпрограмма, определенная языком, является реентерабельной в том смысле, что одновременные вызовы любой подпрограммы, определенной языком, выполняются согласно спецификации, при условии, что все объекты, обозначенные параметрами, которые могут передаваться по ссылке или обозначаться параметрами типа доступа, не перекрываются.
В целях определения, требуют ли одновременные вызовы подпрограмм ввода-вывода текста выполнения по указанной выше спецификации, при вызове подпрограммы в Text_IO или её подпрограммах, которая неявно работает с одним из файлов ввода-вывода по умолчанию, подпрограмма считается имеющей параметр Current_Input или Current_Output (соответственно).
Если объявлен потомок помеченного типа языка, реализация должна гарантировать, что каждая унаследованная подпрограмма, определенная языком, ведёт себя в соответствии с описанным в настоящем Международном стандарте. В частности, переопределение подпрограммы, определенной языком, не должно изменять эффект любой унаследованной подпрограммы, определенной языком.
Разрешения для реализации
Реализация может ограничить замену единиц компиляции, определённых языком. Реализация может ограничить потомков библиотечных единиц языка (кроме Standard).