Una variable es un objeto de datos con un nombre, un
tipo y un valor asociado que puede modificarse libremente
durante la ejecución de la parte de un programa en la que es visible
(ámbito). Una declaración de variables consta de: (1) una lista
de nombres de las variables que se declaran separadas por comas (",") y
terminada con dos puntos (":"), (2) el tipo de las variables y, opcionalmente,
(3) la asignación de un valor inicial.
X: Float;
Y, Z: Integer := 0;
Una constante es un objeto de datos con un nombre, un tipo y un valor asociado que no puede modificarse una vez definido. Una declaración de constantes es igual que una declaración de variables excepto en que se precede al tipo con la palabra constant .
C, K: constant Integer := 0;
En la parte visible de un paquete se puede hacer una
declaración de constantes sin especificar el valor (deferred declaration,
declaración diferida) siempre que en la parte
private del mismo paquete se haga una nueva declaración
(full declaration) para definirlo.
package Ejemplo is
C: constant Integer; -- declaración diferida
...
private
C: constant Integer := 0; -- declaración completa
...
end Ejemplo;
Ada contempla además una clase de constantes que sirve para asociar
un nombre para identificar un valor numérico y que no requiere la
especificación de un tipo.
Pi: constant := 3.1416;
Los objetos de datos creados mediante declaraciones escritas en el código
son variables que se crean cuando se elabora la
declaración al iniciarse la ejecución de la región
donde se encuentra y se destruyen cuando se termina dicha ejecución.
Se pueden crear variables de forma dinámica en cualquier momento
de la ejecución de un programa usando la palabra reservada new
acompañada del tipo de la variable que se pretende crear; como resultado
se devuelve la dirección del bloque de memoria asociado a la variable
que se crea, esta dirección puede almacenarse en una variable puntero (access) para poder acceder posteriormente
a la variable dinámica.
P := new Integer; --P debe ser un puntero (access)
a variables de tipo Integer.
Las variables dinámicas también se pueden crear con un valor inicial.
P := new Integer'(35); --la variable dinámica
se crea con el valor 35.
En Ada, una variable dinámica se libera automáticamente
cuando finaliza la ejecución de la parte del programa donde está
definido el tipo puntero que permite referenciarla. Para realizar un control
más eficiente de la memoria es necesario emplear operaciones de
liberación explícita de las variables creadas dinámicamente
cuando ya no sean necesarias; se necesita instanciar el procedimiento genérico
"Unchecked_Deallocation" para lo que se debe incluir en la cláusula de contexto. La instanciación
posterior tendrá que indicar el tipo de las variables a liberar y
el tipo de puntero que se usa para referenciarlas.
--se incluye "Unchecked_Deallocation" en la cláusula
de contexto
with Unchecked_Deallocation;
...
--se instancia dentro de la unidad de programa
--se supone que P_Integer ha sido declarado como "access Integer"
procedure Liberar_Integer is new Unchecked_Deallocation(Integer,P_Integer);
...
--ahora se puede usar Liberar_Integer para liberar variables dinámicas
Integer
--Suponiendo que P es de tipo P_Integer y contiene la dirección
de una
--variable Integer dinámica creada previamente:
Liberar_Integer(P); --Libera la variable dinámica referenciada
por P
© Grupo de Estructuras de Datos y Lingüística Computacional - ULPGC.
Anterior | Superior | Siguiente