Scope

Each procedure block establishes a distinct region of the program text called "scope," throughout which the names declared within that procedure block are known. The scope of a name is defined as the region of the program in which the name has meaning and can be referenced.

The scope of a name includes the procedure in which the name is declared and all procedures contained within that procedure, except those contained procedures in which the same name is redeclared. For example:

A: PROCEDURE;
   DECLARE (X,Y) FLOAT;
      .
      .
      .
   B: PROCEDURE;
      DECLARE X FILE; 
      DECLARE Z FIXED;
            .
            .
            .
   END B; 
END A;

In this example, the scope of Y includes both procedure A and procedure B. The scope of X as a float is only procedure A. The scope of X as a file is procedure B. The scope of Z is procedure B. Z cannot be referenced from within procedure A. The scope of the procedure name B includes both procedure A and procedure B.