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 always 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.