Ada Reference Manual (Ada 2022) — Legal Information

# 10.1 Separate Compilation

1
A program unit is either a package, a task unit, a protected unit, a protected entry, a generic unit, or an explicitly declared subprogram other than an enumeration literal. Certain kinds of program units can be separately compiled. Alternatively, they can appear physically nested within other program units.
2
The text of a program can be submitted to the compiler in one or more compilations. Each compilation is a succession of compilation_units. A compilation_unit contains either the declaration, the body, or a renaming of a program unit. The representation for a compilation is implementation-defined.
3
A library unit is a separately compiled program unit, and is a package, subprogram, or generic unit. Library units may have other (logically nested) library units as children, and may have other program units physically nested within them. A root library unit, together with its children and grandchildren and so on, form a subsystem.

#### Implementation Permissions

4
An implementation may impose implementation-defined restrictions on compilations that contain multiple compilation_units.

Ada 2005 and 2012 Editions sponsored in part by Ada-Europe