Contents Index Search Previous Next
6.3 Subprogram Bodies
specifies the execution of a subprogram.
If a designator
appears at the end of a subprogram_body,
it shall repeat the defining_designator
of the subprogram_specification.
In contrast to other bodies, a subprogram_body
need not be the completion of a previous declaration, in which case the
body declares the subprogram. If the body is a completion, it shall be
the completion of a subprogram_declaration
The profile of a subprogram_body
that completes a declaration shall conform fully to that of the declaration.
is considered a declaration. It can either complete a previous declaration,
or itself be the initial declaration of the subprogram.
The elaboration of a non-generic
has no other effect
than to establish that the subprogram can from then on be called without
failing the Elaboration_Check.
The execution of a subprogram_body
is invoked by a subprogram call. For this execution the declarative_part
is elaborated, and the handled_sequence_of_statements
is then executed.
Example of procedure
procedure Push(E : in Element_Type; S : in out Stack) is
if S.Index = S.Size then
S.Index := S.Index + 1;
S.Space(S.Index) := E;
Example of a function
function Dot_Product(Left, Right : Vector) return Real is
Sum : Real := 0.0;
Check(Left'First = Right'First and Left'Last = Right'Last);
for J in Left'Range loop
Sum := Sum + Left(J)*Right(J);
Contents Index Search Previous Next Legal