Definición
Una especificación de una categoría de datos por el conjunto de operaciones que se pueden realizar sobre ella y las propiedades (semántica del comportamiento) que dichas operaciones deben satisfacer, independiente de cualquier implementación concreta.

Principio

Principio
Definir datos mediante interfaz y axiomas (operaciones, precondiciones, postcondiciones, invariantes) en lugar de por disposición en memoria o algoritmos; la corrección y el razonamiento se basan en el contrato entre clientes e implementadores, posibilitando múltiples implementaciones que preserven el comportamiento especificado.

Demostración

Demostración
Un ADT pila se define por las operaciones push, pop, top/peek y empty con semántica LIFO: push seguido de pop devuelve el elemento apilado; implementaciones concretas incluyen arrays, listas enlazadas o buffers circulares que cumplen el mismo contrato ADT.

Aplicación incorrecta

Aplicación incorrecta
Confundir un ADT con una implementación particular (por ejemplo, equiparar el ADT pila con una implementación por array) o exponer detalles de implementación en la especificación socava la portabilidad, la verificación formal y el razonamiento sobre complejidad.

Consecuencia

Consecuencia
El uso de ADTs clarifica la corrección de programas, permite diseño modular y sustitución de implementaciones, y separa preocupaciones para que la complejidad algorítmica y los trade‑offs de almacenamiento puedan analizarse independientemente del comportamiento lógico.

Inversión

Inversión
Una representación de datos concreta sin una especificación abstracta expone las elecciones de implementación como API, haciendo que los clientes dependan de detalles de representación; la inversión acepta ninguna barrera de abstracción y acopla a los clientes a una sola implementación.

Límite

Límite
Se aplica al nivel de especificación y diseño de software; excluye el cableado de hardware a bajo nivel, los layouts físicos de memoria en sistemas embebidos cuando éstos forman parte del contrato funcional, y descripciones informales carentes de propiedades comportamentales formales cuando se requiere razonamiento formal.

Tensión semántica

Tensión semántica
Tensión con implementaciones de tipos y encapsulación de objetos: los tipos en tiempo de ejecución de un lenguaje o los objetos pueden confundir interfaz ADT e implementación; el debate se centra en cuán formal debe ser la especificación (documentación informal vs axiomatización formal).

Síntesis

Síntesis
Un tipo de datos abstracto es la interfaz más el contrato comportamental que define qué hacen las operaciones y las invariantes que preservan —separando la especificación lógica de las opciones de implementación para que múltiples estructuras de datos concretas puedan realizar el mismo comportamiento observable dentro de restricciones de rendimiento y corrección declaradas, con incertidumbre residual sobre compromisos no funcionales.