The overall structure of programs and the facilities
for separate compilation are described in this section. A program
is a set of partitions, each of which may execute in a separate
address space, possibly on a separate computer. 
   As
explained below, a partition is constructed from 
library units.
Syntactically, the declaration of a library unit is a 
library_item,
as is the body of a library unit. An implementation may support a concept
of a 
program library (or simply, a ``library''), which contains
library_items and their subunits.
Library units may be organized into a hierarchy of
children, grandchildren, and so on.
 
   This section has two clauses: 
10.1,
``
Separate Compilation'' discusses compile-time
issues related to separate compilation. 
10.2,
``
Program Execution'' discusses issues related
to what is traditionally known as ``link time'' and ``run time'' -- building
and executing partitions.