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