プロシージャーとは、PROCEDURE ステートメントとそれに対応する END ステートメントとで区切られている一連のステートメントです。 プロシージャーは、主プロシージャー、サブルーチン、または関数などです。 アプリケーションは、OPTIONS(MAIN) を持つ 1 つの外部プロシージャーを 持たなければなりません。 以下の例では、プロシージャーの名前は Name であり、 プロシージャーのエントリー・ポイント を表しています。
Name:
procedure;
end Name;
ENTRY ステートメントは、 プロシージャーへの 2 次エントリー・ポイントを定義することができます。 以下に例を示します。
Name: procedure; B: entry; end Name;
B は、Name プロシージャーへの 2 次エントリー・ポイントを定義します。 ENTRY ステートメントについては、ENTRY 属性を参照してください。
プロシージャーは、1 つの名前を持たなければなりません。 別のプロシージャーまたは開始ブロック内にネストされた プロシージャー・ブロックは、内部プロシージャー と呼ばれます。 別のプロシージャーまたは開始ブロック内にネストされていない プロシージャー・ブロックは、外部プロシージャー と呼ばれます。 パッケージから搬出されたレベル 1 のプロシージャーも、 外部プロシージャーになります。 外部プロシージャーは、ほかのコンパイル単位のほかのプロシージャーで 呼び出すことができます。 プロシージャーは、ほかのプロシージャーを呼び出すことができます。
プロシージャーを再帰的にすることができます。つまり、その中から再活動化したり、 すでに活動している別の活動プロシージャー内から再活動化したりすることができます。 プロシージャーを呼び出すときに引数を渡すことができます。
これらのサブジェクトに関する詳細については、以下の節を参照してください。