La abstracción
Enviado por metalicaacdc • 28 de Agosto de 2014 • Informe • 2.254 Palabras (10 Páginas) • 161 Visitas
. 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.
3. Abstracción funcional y abstracción 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.
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 TAD
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
...