Programación en Ada/Ámbito
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
Pis
-- ///////////////////////////////////// Parte declarativa de P.
-- ...
-- -------------------------------------- Ámbito de A.
A: Float;-- -------------------------------------- Ámbito de Q.
-- ////////////// Región declarativa de I y R.
procedure
Qis
-- /////////////////////////////// Parte declarativa de Q.
-- ------------------------------ Ámbito de I.
I: Integer := 0;-- ...
-- //////// Región declarativa de J.
package
Ris
-- ///////// Parte declarativa pública de R.
-- --------------------- Ámbito de J.
J: Integer := I;-- ...
-- ///// Fin parte declarativa pública de R.
end
R;package
body
Ris
-- ///////// 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.