Tipos De Datos Abstractos
Enviado por mccromo • 6 de Septiembre de 2014 • 1.787 Palabras (8 Páginas) • 275 Visitas
TIPOS ABSTRACTOS DE DATOS (TAD)
1. La abstracción.
A pesar de que estamos acostumbrados a utilizar el término abstracción dentro del contexto de la programación, la verdad es que esta palabra tiene un origen mucho más lejano. Desde siempre, el hombre se ha tenido que enfrentar a problemas muy complejos, sin embargo con el paso del tiempo hemos descubierto un buen método para enfrentarnos a ellos: la abstracción. Abstraer consiste en centrarse sólo en la parte principal y esencial de los problemas, dejando así a un lado todos los detalles insignificantes o menos importantes.
Un buen ejemplo de la capacidad humana para la abstracción es la elaboración y lectura y un mapa. Cuando dibujamos un mapa de carreteras, reflejamos en él los elementos principales, los que tienen utilidad para su interpretación, como por ejemplo las autopistas, autovías, carreteras nacionales, áreas de servicio, gasolineras, etc. Otros datos como podrían ser museos, parques o monumentos no aparecen ya que se consideran innecesarios en este tipo de mapas. La abstracción es una de las herramientas fundamentales de la mente humana, ya que nos permite dividir los problemas en partes independientes y solucionar cada una por separado.
2. La evolución de la abstracción en la programación.
En los primeros tiempos de la informática, los programadores se comunicaban con las máquinas en binario, lo cual resultaba ser una tarea extremadamente larga y complicada. Al cabo de un tiempo apareció el código ensamblador, cuyos nemotécnicos facilitaron notablemente el trabajo de los programadores al evitar que tuviesen que recordar las secuencias de unos y ceros que formaban cada instrucción. Estos nemotécnicos constituyeron la primera escala de abstracción de la era informática.
Unos años más tarde, llegaron los lenguajes de alto nivel y con ellos, las macroinstrucciones. Gracias a estos lenguajes, los programadores pudieron comenzar a escribir software genérico, es decir, podían programar sin preocuparse de la máquina sobre la que iba a correr el programa. Esto se debía a que las instrucciones de los lenguajes de alto nivel producían varias acciones en la máquina, independientemente de las arquitecturas concretas de cada una de ellas. Con este tipo de lenguajes llegaron también las sentencias de control más habituales como los bucles o sentencias if-then.
En definitiva, la complejidad iba creciendo a medida que lo hacía la abstracción. Así fueron surgiendo los procedimientos y funciones, los módulos y posteriormente los tipos abstractos de datos.
En la programación, la abstracción puede aplicarse de dos modos distintos dando lugar a la abstracción funcional y la abstracción de datos.
3. Abstracción funcional y abstracción de datos.
La abstracción funcional aparece al pensar de manera abstracta las operaciones que necesitamos para resolver un problema. Este tipo de abstracción nos permite definir operaciones nuevas en una aplicación que anteriormente carecía de ellas. La abstracción funcional fue la primera en aparecer ya que es fácil de llevar a la práctica debido a que su implementación es posible en la gran mayoría de los lenguajes de programación. Suele corresponderse con el uso de procedimientos o funciones.
La abstracción de datos surge cuando se abstrae el significado de los diferentes tipos de datos que aparecen en nuestro problema. Este tipo de abstracción nos permite crear nuevos tipos de datos pensando en los posibles valores que pueden tomar y en las operaciones que los manipulan. Como cabe esperar, estas operaciones serán a su vez abstracciones funcionales.
La abstracción de datos es más reciente que la funcional, ya que los primeros lenguajes de programación no ofrecían demasiadas facilidades para su uso. Uno de los primeros mecanismos que permitió esta abstracción fueron las clases de Simula.
4. Datos, tipos de datos y TDA.
Para hablar de la abstracción es necesario tener clara la diferencia que existe entre los datos, los tipos de datos y los tipos abstractos de datos.
Los datos son los valores que manejamos en la resolución de un problema, tanto los valores de entrada, como los de proceso y los de salida. Es decir, los datos son información y por lo tanto distinguimos varios tipos de datos.
Un tipo de dato se puede definir como un conjunto de valores y un conjunto de operaciones definidas por esos valores. Clasificar los datos en distintos tipos aporta muchas ventajas, como por ejemplo indicarle al compilador la cantidad de memoria que debe reservar para cada instancia dependiendo del tipo de dato al que pertenezca.
Los tipos de datos abstractos van todavía más lejos; extienden la función de un tipo de dato ocultando la implementación de las operaciones definidas por el usuario. Esta capacidad de ocultamiento nos permite desarrollar software reutilizable y extensible, lo cual veremos más adelante cuando hablemos de modularidad.
5. Tipos abstractos de datos.
Un tipo de datos definido por el programador se denomina tipo abstracto de datos (TAD) para distinguirlo de los tipos predefinidos de datos. Los tipos abstractos de datos están formados por los datos (estructuras de datos) y las operaciones (procedimientos o funciones) que se realizan sobre esos datos. El conjunto de operaciones definidas sobre el TAD debe ser cerrado, es decir, sólo se debe acceder a los datos mediante las operaciones abstractas definidas sobre ellos. La abstracción de datos sólo permite acceder a ellos de manera controlada.
Las estructuras de los TAD se componen de dos partes: la interfaz y la implementación. Esto se debe a que las estructuras de datos reales que utilizamos para almacenar la representación de un tipo abstracto de datos son invisibles para los usuarios o clientes. Mientras que en la interfaz se declaran las operaciones y los datos, la implementación
...