Справочник по Ada (Ada 2022)
E.2 Категоризация библиографических единиц
Библиотечные единицы могут быть классифицированы в соответствии с ролью, которую они играют в распределённой программе. Некоторые ограничения связаны с каждой категорией, чтобы обеспечить, что семантика распределённой программы остаётся близкой к семантике нераспределённой программы.
Аспект категоризации ограничивает объявления, дочерние единицы или семантические зависимости библиотечной единицы, к которой он применяется. Категоризированная библиотечная единица — это библиотечная единица, у которой аспект категоризации имеет значение True.
Аспекты Shared_Passive, Remote_Types и Remote_Call_Interface являются аспектами категоризации. Кроме того, для целей этого Приложения аспект Pure (см. 10.2.1) рассматривается как аспект категоризации.
Библиотечный пакет или обобщённый библиотечный пакет называется пассивной общей библиотечной единицей, если аспект Shared_Passive единицы имеет значение True. Библиотечный пакет или обобщённый библиотечный пакет называется библиотечной единицей удалённых типов, если аспект Remote_Types единицы имеет значение True. Библиотечная единица называется интерфейсом удалённого вызова, если аспект Remote_Call_Interface единицы имеет значение True. Обычная библиотечная единица — это единица, для которой ни один из аспектов категоризации не имеет значения True.
Различные категории библиотечных единиц и связанные с ними ограничения описаны в этом и последующих подпунктах. Категории связаны иерархически, так что библиотечные единицы одной категории могут семантически зависеть только от библиотечных единиц этой категории или более ранней в иерархии, за исключением того, что тело библиотечной единицы удалённых типов или интерфейса удалённого вызова не ограничено, объявление библиотечной единицы удалённых типов или интерфейса удалённого вызова может зависеть от предварительно проработанных обычных библиотечных единиц, упомянутых только в частных разделах, и все категории могут зависеть от ограниченных представлений.
Общая иерархия (включая объявленный чистый) представлена следующим образом, причём категория с меньшим номером — это «более ранний элемент в иерархии» в смысле предыдущего абзаца:
1.
Объявленный чистый
2.
Пассивный общий
3.
Удалённые типы
4.
Интерфейс удалённого вызова
5.
Обычный (без ограничений)
Абзацы с 7 по 11 были удалены.
Библиотечные единицы, объявленные чистыми и пассивными общими, предварительно прорабатываются. Объявление библиотечной единицы удалённых типов или интерфейса удалённого вызова должно быть предварительно прорабатываемым.
Абзацы 13 и 14 были удалены.