VTipos Genéricos de Datos Abstractos
Enviado por davidd_dr7 • 26 de Septiembre de 2013 • Informe • 616 Palabras (3 Páginas) • 272 Visitas
vTipos Genéricos de Datos Abstractos
Los TDAs se usan para definir un nuevo tipo a partir del cuál se pueden crear instancias. Como se mostró en el ejemplo de la lista, algunas veces estas instancias deberían operar del mismo modo sobre otros tipos de datos. Por ejemplo, uno puede pensar en listas de manzanas, carros o aún listas. La definición semántica de una lista siempre es la misma. Solamente el tipo de los elementos de datos cambia de acuerdo al tipo sobre el cuál debía operar la lista..
Esta información adicional podría ser especificada por un parámetro genérico que es especificado al momento de la creación de la instancia. Así, una instancia de un TDA genérico es en la práctica una instancia de una variante particular del TDA. Una lista de manzanas puede ser por lo tanto declarada como sigue :
List<Apple> listOfApples;
Los corchetes angulares encierran ahora el tipo de datos para el cuál una variante del TDA genérico List sería creada. listOfApples ofrece la misma interface que cualquiera otra lista, pero opera en instancias del tipo Apple.
3.4 Notación
Debido a que los TDAs proveen una perspectiva abstracta para describir propiedades de conjuntos de entidades, su uso es independiente de un lenguaje de programación en particular. Presentamos aquí por lo tanto una notación que es adoptada de [3]. Toda descripción de un TDA consiste en dos partes :
• Datos: Esta parte describe la estructua de los datos usada en el TDA de una manera informal.
• Operaciones: Esta parte describe las operaciones válidas para este TDA, por lo tanto, describe su interface. Usamos la operación especial constructor para describir las acciones que se van a ejecutar una vez que una entidad de este TDA es creada y destructor para describir las acciones que se van a efectuar cuando una entidad es destruída. Son dados para cada operación, los argumentos provistos así como precondiciones y postcondiciones.
Se presenta como ejemplo la descripción del TDA Integer. Sea k una expresión integer:
TDA Integer es
Datos
Una secuencia de dígitos que opcionalmente presentan como prefijo un signo más o un signo menos. Nos referimos a este número entero con signo como N.
Operaciones
constructor
Crea un nuevo integer.
add(k)
Crea un nuevo integer, suma de N y k.
Por consecuencia, la postcondición de esta operación es sum = N+k. ¡No confundir ésto con los enunciados de asignación tal como se usan en los lenguajes de programación ! Es más bien una ecuación matemática que da "verdadero" por cada valor sum, N y k después que add ha sido ejecutada.
sub(k)
Similar a add, esta operación crea un nuevo integer de la diferencia de ambos valores integer. Por lo tanto la postcondición para esta operación es sum = N-k.
...