Subprograms are one of the four forms of program unit, of which programs can be composed. The other forms are packages, task units, and generic units.
A subprogram is a program unit 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 calling conventions, and a subprogram body defining its execution.
References: function, function call, generic unit, package, procedure, procedure call, subprogram body, subprogram call, subprogram declaration, task unit.