PROCEDURE proecdure-name signature "=" declarations BEGIN statements END procedure-name ";" procedure-name = identifier
A procedure declaration is composed of an identifier, a signature (see section Procedure Types), optional local declarations, and statements. The identifier at the end of the procedure must match the id at the beginning. Declarations made in a procedure are local to the procedure: they exist only while the procedure is executing.
If the procedure signature specifies a result type, the procedure is called a function procedure, and it must include a RETURN statement which returns an expression of the specified type. It is a checked runtime error for a function procedure to fail to return a result.
PROCEDURE Hello( ) = BEGIN IO.Put ("Hello World\n"); END Hello;
PROCEDURE Check(f: File.T) RAISES { Problem } = BEGIN IF file = NIL THEN RAISE Problem END; END Check; EXCEPTION Problem;