Annotated Ada Reference ManualLegal Information
Table of Contents   Index   References   Search   Previous   Next 

 6.7 Null Procedures

1/2
{AI95-00348-01} A null_procedure_declaration provides a shorthand to declare a procedure with an empty body.

Syntax

2/2
{AI95-00348-01} null_procedure_declaration ::= 
   [overriding_indicator]
   procedure_specification is null;

Static Semantics

3/2
{AI95-00348-01} A null_procedure_declaration declares a null procedure.{null procedure} {procedure (null)} A completion is not allowed for a null_procedure_declaration. 
3.a/2
Reason: There are no null functions because the return value has to be constructed somehow; a function that always raises Program_Error doesn't seem very useful or worth the complication. 

Dynamic Semantics

4/2
{AI95-00348-01} The execution of a null procedure is invoked by a subprogram call. For the execution of a subprogram call on a null procedure, the execution of the subprogram_body has no effect. 
4.a/2
Ramification: Thus, a null procedure is equivalent to the body 
4.b/2
begin
   null;
end;
4.c/2
with the exception that a null procedure can be used in place of a procedure specification.
5/2
{AI95-00348-01} {elaboration (null_procedure_declaration) [partial]} The elaboration of a null_procedure_declaration has no effect. 

Examples

6/2
{AI95-00433-01} procedure Simplify(Expr : in out Expression) is null; -- see 3.9
-- By default, Simplify does nothing, but it may be overridden in extensions of Expression

Extensions to Ada 95

6.a/2
{AI95-00348-01} {extensions to Ada 95} Null procedures are new. 

Table of Contents   Index   References   Search   Previous   Next 
Ada-Europe Sponsored by Ada-Europe