A
subprogram is a program unit or intrinsic operation whose execution is
invoked by a subprogram call. There are two forms of subprogram: procedures
and functions. A procedure call is a
statement;
a function call is an expression and returns a value. The definition
of a subprogram can be given in two parts: a subprogram declaration defining
its interface, and a
subprogram_body
defining its execution. Operators and enumeration literals are functions.
A
callable entity is a
subprogram or entry (see Section 9).
A callable entity
is invoked by a
call; that is, a subprogram call or entry call.
A
callable construct is a construct that defines
the action of a call upon a callable entity: a
subprogram_body,
entry_body,
or
accept_statement.