Please enable JavaScript.
Coggle requires JavaScript to display documents.
TIPOS DE DATOS ABSTRACTOS - Coggle Diagram
TIPOS DE DATOS ABSTRACTOS
es un modelo matemático compuesto por una colección de operaciones definidas sobre un conjunto de datos para el modelo.
Introducción
Un tipo de dato definido por el programador se denomina tipo abstracto de dato TAD (Abstract Data Type, ADT). El término abstracto se refiere al medio en que un programador abstrae algunos conceptos de programación, creando un nuevo tipo de dato.
Tipos de datos abstractos (TDA)
El concepto de tipo de dato abstracto (TDA, Abstract Data Type), fue propuesto por primera vez hacia 1974 por John Guttag y otros, pero no fue hasta 1975 que por primera vez Liskov lo propuso para el lenguaje CLU.
La abstracción de datos consiste en ocultar las características de un objeto y obviarlas, de manera que solamente utilizamos el nombre del objeto en nuestro programa.
Un TDA está caracterizado por un conjunto de operaciones (funciones) al cual se denomina usualmente como interfaz pública y representa el comportamiento del TDA; mientras que la implementación como la parte privada del TDA está oculta al programa cliente que lo usa.
Un TDA representa una abstracción
Se destacan los detalles (normalmente pocos) de la especificación (el qué).
Se ocultan los detalles (casi siempre numerosos) de la implementación (el cómo).
Modularidad (Ocultación de la información)
Se denomina Modularidad a la propiedad que permite subdividir una aplicación en partes más pequeñas (llamadas módulos), cada una de las cuales debe ser tan independiente como sea posible de la aplicación en sí y de las restantesModularidad
Estos módulos que se puedan compilar por separado, pero que tienen conexiones con otros módulos.
Ventajas
Un programa modular es más que a veces los programadores fácil de escribir y depurar no tienen claras las ideas de los (ejecutar, probar y poner a módulos. punto).
Un programa modular es más requiere más memoria y tiempo fácil de controlar.
Desventajas
No se dispone de algoritmos formales de modularidad, por lo que a veces los programadores no tienen claras las ideas de los módulos.
La programación modular requiere mas memoria y tiempo de ejecución.
Java permite organizar las clases en paquetes y sub paquetes de forma jerárquica.
Módulos de definición
Módulos de servicio
Tipos Abstractos de Datos
Máquinas Abstractas de Estado
Esta jerarquía se refleja en la forma de almacenamiento en disco a través de directorios.
Usos de los TDA
Conjuntos: Implementación de conjuntos con sus operaciones básicas
Árboles Binarios de Búsqueda: Implementación de árboles de elementos, utilizados para la representación interna de datos complejos.
Pilas y Colas: Implementación de los algoritmos FIFO y LIFO.
Grafos: Implementación de grafos; una serie de vértices unidos mediante una serie de arcos o aristas.
Manejo de Memoria
Estática
Es la asignación de memoria para algunos elementos fijos del programa que es controlada por el compilador.
Define la cantidad de memoria necesaria para un programa durante el tiempo de compilación.
El tamaño no puede cambiar durante el tiempo de ejecución del programa.
Algunos lenguajes de programación utilizan la palabra static para especificar elementos del programa que deben almacenarse en memoria estática.
Elementos que residen en
memoria estática:
Código del programa.
Las variables definidas en la sección principal del programa, las cuales pueden solo cambiar su contenido no su tamaño.
Todas aquellas variables declaradas como estáticas en otras.
Manejo de Memoria
Dinámica
El tamaño de los elementos puede cambiar durante la ejecución del programa.
Almacena todos los elementos definidos con la palabra new en un programa.
Define el tamaño del espacio de memoria necesario para un programa en tiempo de ejecución.
Sus variables crecen de tamaño o se reducen durante la ejecución del programa
Es la asignación y posible recuperación de memoria durante la ejecución de un programa y bajo su control.