6 Subprograms
This Reference Manual output has not been verified, and may contain omissions or errors. Report any problems on the tracking issue
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.]
Term entry: subprogram — unit of a program that can be brought into execution in various contexts, with the invocation being a subprogram call that can parameterize the effect of the subprogram through the passing of operands
Note: There are two forms of subprograms: functions, which return values, and procedures, which do not.
Term entry: function — form of subprogram that returns a result and can be called as part of an expression
Term entry: procedure — form of subprogram that does not return a result and can only be invoked by a statement
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
.
Note that “callable entity” includes predefined operators, enumeration literals, and abstract subprograms. “Call” includes calls of these things. They do not have callable constructs, since they don't have completions.