package

Explicación

Los paquetes son unidades que agrupan entidades relacionadas, por ejemplo, la declaración de un tipo y sus operaciones primitivas, facilitando su interfaz y ocultando los detalles de su implementación. 

Un paquete es un mecanismo de encapsulamiento y ocultación de información especialmente útil para definir tipos abstractos de datos.

Normalmente un  paquete se divide en dos partes: la especificación (package specification) y el cuerpo (package body). La palabra reservada package se utiliza para definir ambas partes.

Es posible declarar paquetes genéricos???, dotados de parámetros que permiten reutilizarlo en diferentes situaciones.

Una vez compiladas la especificación y la implementación de un paquete, se puede hacer uso del mismo en otras unidades simplemente incluyendo el nombre del paquete en sus cláusulas de contexto, como se ve en el ejemplo.

Ejemplo

El procedimiento del siguiente ejemplo hace uso de los paquetes predefinidos Ada.Text_IO y Ada.Integer_Text_IO; y del paquete Pila_De_Enteros, cuya especificación e implementación deben haber sido realizadas previamente.

with Ada.Text_IO;         use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
with Pila_De_Enteros;     use Pila_De_Enteros;
procedure Prueba is P: Pila;
begin for I in 1..5 loop   Apilar(P,I); end loop;    while not Es_Vacía(P) loop Put(Cima(P)); New_Line; Desapilar(P);   end loop; end Prueba;