Справочник по Ada 2012
10.1 Раздельная компиляция
Единица программы — это пакет, задача, защищенная единица, защищенный вход, обобщенная единица или явно объявленная подпрограмма, отличная от литерала перечисления. Некоторые виды единиц программы могут быть скомпилированы раздельно. В качестве альтернативы они могут быть физически вложены в другие единицы программы.
Текст программы может быть представлен компилятору в одном или нескольких компиляциях. Каждая компиляция представляет собой последовательность единиц_компиляции. Единица компиляции содержит либо объявление, либо тело, либо переименование единицы программы. Представление компиляции определяется реализацией.
Единица библиотеки — это отдельно скомпилированная единица программы, и всегда является пакетом, подпрограммой или обобщенной единицей. Единицы библиотеки могут иметь другие (логически вложенные) единицы библиотеки в качестве дочерних элементов и могут иметь другие единицы программы, физически вложенные в них. Корневая единица библиотеки вместе с ее дочерними, внучатыми и т.д. элементами образует подсистему.
Разрешения реализации
Реализация может наложить определенные реализацией ограничения на компиляции, содержащие несколько единиц_компиляции.