各プロシージャ ブロックにより、そのプロシージャ ブロックで宣言された名前が認識されるプログラム テキストの個別の領域が確立されます。この領域を「範囲」と呼びます。名前の範囲は、その名前が意味を持ち、その名前を参照できるプログラムの領域として定義されます。
名前の範囲には、その名前が宣言されたプロシージャと、そのプロシージャに含まれるすべてのプロシージャ (同じ名前が再宣言されたプロシージャを除く) が含まれます。次に例を示します。
A: PROCEDURE;
DECLARE (X,Y) FLOAT;
.
.
.
B: PROCEDURE;
DECLARE X FILE;
DECLARE Z FIXED;
.
.
.
END B;
END A;
この例では、Y の範囲にはプロシージャ A とプロシージャ B の両方が含まれます。FLOAT としての X の範囲はプロシージャ A のみで、FILE としての X の範囲はプロシージャ B です。Z の範囲はプロシージャ B であるため、プロシージャ A から Z を参照することはできません。プロシージャ名 B の範囲にはプロシージャ A とプロシージャ B の両方が含まれます。