Charla: tipo de datos abstracto


En informática , un tipo de datos abstracto ( ADT ) consta de un "dominio" (un conjunto de datos), un conjunto de operaciones y un conjunto de "axiomas" (reglas que las operaciones deben obedecer).

El primer párrafo está equivocado de varias formas: (a) Las clases, aunque son una de las mejores formas de implementar un ADT, no son la única, y el estilo que se describe aquí es solo una de varias implementaciones posibles incluso en un lenguaje OO; (b) no se mencionan los axiomas (está implícito en la "especificación" por así decirlo, pero eso es demasiado fácil de pasar por alto).


En programación , los ADT se utilizan a menudo como un vehículo de diseño y documentación: si algún código lleva como comentario que equivale a "esto implementa una pila", queda inmediatamente claro que las propiedades esenciales del código son las del ADT "pila", y que todo lo demás fue considerado "detalle de implementación" accidental por parte del programador.

Sin embargo, normalmente no es el ADT lo que interesa a los usuarios de un árbol binario equilibrado. El ADT para estos es un mapa (insertar / eliminar / buscar sin importar cómo), además de algunas garantías de rendimiento (las garantías de rendimiento generalmente no se consideran parte de un ADT, aunque personalmente diría que esto haría que el concepto fuera más útil). - Joachim Durchholz [ [2] ]

Este artículo, tal como está actualmente, no detalla la separación clara entre interfaz e implementación que es necesaria para definir un tipo de datos abstracto. Consulte mi artículo de abstracción de datos alternativos para obtener una explicación de esto.

El ejemplo original parecía demasiado complejo. Con suerte, ver la interfaz y la implementación ayudará al lector a comprender.