A compilation group may contain zero, one, or more source units. A compilation group consists of a series of source units.
A source unit may contain other source units and these contained source units may reference some of the resources of the source
units within which they are contained.
A source unit begins with an Identification Division.
A source unit includes any contained source units.
With the exception of source text manipulation statements
and end markers
![]()
and compiler directives
, the statements, entries, paragraphs, and sections of a source unit are grouped into four divisions that are sequenced in the following order:
The beginning of a division in a source unit is indicated by the appropriate division header.
![]()
The beginning of the Identification Division may also be indicated by one of the paragraph headers permitted in the Identification
Division.
The end of a division in a source unit is indicated by one of the following:
The end of a source unit is indicated by the absence of additional source lines in the compilation group.
The end of a source unit can also be indicated by an end marker.
When a source unit, B, is contained in another source unit, A, it may be directly or indirectly contained. Source unit B is
directly contained in source unit A if there is no source unit contained in A that also contains B. Source unit B is indirectly
contained in source unit A if there exists a source unit contained in A that also contains B.
A source unit that is directly or indirectly contained within another source unit is considered in these specifications as a separate source unit that may additionally reference certain resources defined in the containing source unit.
The object code resulting from compiling a source unit contained within another source unit is considered in these specifications to be inseparable from the object code resulting from compiling the containing source unit.
A compilation unit is a source unit that is not contained within another source unit. It may be preceded or followed by other
compilation units in a compilation group.
A source element is a source unit excluding any nested source units.
A runtime element is the result of compiling a source element.
A runtime module is the result of compiling a compilation unit.
A compilation group may contain zero, one, or more source units. A compilation group consists of a series of source units.
A source unit may contain other source units and these contained source units may reference some of the resources of the source
units within which they are contained.
A source unit begins with an Identification Division.
A source unit includes any contained source units.
With the exception of source text manipulation statements
and end markers
![]()
and compiler directives
, the statements, entries, paragraphs, and sections of a source unit are grouped into four divisions that are sequenced in the following order:
The beginning of a division in a source unit is indicated by the appropriate division header.
![]()
The beginning of the Identification Division may also be indicated by one of the paragraph headers permitted in the Identification
Division.
The end of a division in a source unit is indicated by one of the following:
The end of a source unit is indicated by the absence of additional source lines in the compilation group.
The end of a source unit can also be indicated by an end marker.
When a source unit, B, is contained in another source unit, A, it may be directly or indirectly contained. Source unit B is
directly contained in source unit A if there is no source unit contained in A that also contains B. Source unit B is indirectly
contained in source unit A if there exists a source unit contained in A that also contains B.
A source unit that is directly or indirectly contained within another source unit is considered in these specifications as a separate source unit that may additionally reference certain resources defined in the containing source unit.
The object code resulting from compiling a source unit contained within another source unit is considered in these specifications to be inseparable from the object code resulting from compiling the containing source unit.
A compilation unit is a source unit that is not contained within another source unit. It may be preceded or followed by other
compilation units in a compilation group.
A source element is a source unit excluding any nested source units.
A runtime element is the result of compiling a source element.
A runtime module is the result of compiling a compilation unit.








call-prototypes and
![]()
function-prototypes and program-prototypes
must precede all other types of source units.