El empleo de
unidades hijas surge ante la necesidad de poder referenciar a un gran número de unidades de biblioteca con distintos nombres. Al igual que un sistema de archivos jerarquizado mediante directorios y subdirectorios, la biblioteca Ada contiene una jerarquía en su organización. Las unidades hijas son un paso más allá respecto a las
subunidades∞, pues permiten extender la funcionalidad de un paquete sin modificar el paquete en cuestión.
El padre de todas las unidades de biblioteca es el
paquete Standard∞. De este modo, las
unidades de biblioteca∞ creadas se agregan como hijas de Standard y se les denomina unidades de biblioteca raíz. Estas unidades serían hermanas de los
paquetes predefinidos∞ Standard.Ada∞,
Standard.System∞ y
Standard.Interfaces∞. Y cada una de ellas puede a su vez contener unidades hijas.
Espacio de nombres
Las unidades hijas forman también un espacio de nombres, desde dentro de la jerarquía es posible referirse a las entidades definidas en el paquete padre como si estuviesen en la propia unidad. Igualmente al referirse a unidades hermanas.
Por ejemplo:
package∞ Servidor
is∞
type∞ Petición_T
is∞ private∞;
-- ...
end∞ Servidor;
package∞ Servidor.Sesión
is∞
type∞ Sesión_T
is∞
record∞
Petición : Petición_T;
-- Equivalente a Servidor.Petición_T
-- ...
end∞ record∞;
-- ...
end∞ Servidor.Sesión;
Los paquetes se pueden encontrar en cualquier punto de la jerarquía, y los subprogramas sólo en las hojas del árbol.
Visibilidad
La parte privada de un paquete hijo y su cuerpo pueden referenciar las entidades definidas en la parte privada del paquete padre.