プロシージャは、PROCEDURE 文で始まり END 文で終わる一連の文です。プロシージャの目的は、一連の実行可能な文と宣言を「パッケージ化」し、プログラム内の複数の場所から呼び出すだけで実行できるブロックを構成することです。プロシージャは文のブロックを定義するため、一般にプロシージャ ブロックと呼ばれます。次の例は、2 つのプロシージャ ブロック A と B を示しています。
A: PROCEDURE;
.
.
.
END A;
B: PROCEDURE;
.
.
.
END B;
他のプロシージャに含まれているプロシージャを入れ子になったプロシージャまたは内部プロシージャと呼びます。他のプロシージャに含まれていないプロシージャは外部プロシージャと呼びます。プログラム モジュールは 1 つ以上の外部プロシージャで構成されます。次に例を示します。
A: PROCEDURE;
.
.
.
B: PROCEDURE;
.
.
.
END B;
C: PROCEDURE
.
.
.
D: PROCEDURE;
.
.
.
END D;
END C;
END A;
この例では、プロシージャ A は外部プロシージャで、その中にプロシージャ B および C が入れ子になっています。プロシージャ D はプロシージャ C の中に入れ子になっています。