Cada
declaración∞ tiene asociada una porción del texto del programa que se denomina
ámbito de la declaración. En dicha porción es el único lugar donde se puede hacer referencia a dicha declaración. El ámbito de una declaración consiste en:
- Si la declaración es una unidad de biblioteca, todos sus dependientes semánticos.
- Si la declaración no es una unidad de biblioteca∞, una porción de la región declarativa que la encierra inmediatamente. Dicha porción se extiende desde el comienzo de la declaración hasta el final de su región declarativa.
Resumiendo, como ejemplo:
procedure∞ P
is∞
-- / Parte declarativa de P.
-- ...
--
Ámbito de A.
A: Float;
--
Ámbito de Q.
-- Región declarativa de I y R.
procedure∞ Q is∞
--
/ Parte declarativa de Q.
--
Ámbito de I.
I: Integer := 0;
-- ...
-- Región declarativa de J.
package∞ R
is∞
-- / Parte declarativa pública de R.
--
Ámbito de J.
J: Integer := I;
-- ...
-- / Fin parte declarativa pública de R.
end∞ R;
package∞ body∞ R
is∞
-- / Parte declarativa privada de R.
--
Ámbito de K
K: Integer := I + J;
-- ...
-- / Fin parte declarativa privada de R.
begin∞
-- ...
end∞ R;
--
Fin ámbito de K
--
Fin ámbito de J.
-- Fin región declarativa de J.
-- / Fin parte declarativa de Q.
begin∞
-- ...
end∞ Q;
-- ...
--
Fin ámbito de I.
--
Fin región declarativa de I y R.
-- / Fin parte declarativa de P.
begin∞
-- ...
end∞ P;
--
Fin ámbito de A.
--
Fin ámbito de Q.
Para la
cláusula with∞ también se define un ámbito, que consiste en la región declarativa de su declaración si aparece delante de la declaración de una unidad de biblioteca y en el cuerpo si aparece delante de un cuerpo.
Para la
cláusula use∞: si actúa como una declaración, su ámbito es la porción de la región declarativa que empieza justo después de la cláusula y finaliza junto con dicha región declarativa; si actúa como cláusula de contexto, su ámbito es el mismo que el de la cláusula with.