範囲

各プロシージャ ブロックにより、そのプロシージャ ブロックで宣言された名前が認識されるプログラム テキストの個別の領域が確立されます。この領域を「範囲」と呼びます。名前の範囲は、その名前が意味を持ち、その名前を参照できるプログラムの領域として定義されます。

名前の範囲には、その名前が宣言されたプロシージャと、そのプロシージャに含まれるすべてのプロシージャ (同じ名前が再宣言されたプロシージャを除く) が含まれます。次に例を示します。

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 の両方が含まれます。