1 1 Concepto y terminologa Tipos de Datos

  • Slides: 12
Download presentation
1. 1 Concepto y terminología · · Tipos de Datos colección de valores +

1. 1 Concepto y terminología · · Tipos de Datos colección de valores + operaciones · Enteros, reales, booleanos, caracteres · Enumerados, subrango · Son opacos Tipos Estructurados genericidad · · Riesgo de crear valores sin semántica Tipos de Datos Abstractos (TDA) · Tipos de datos creados por el programador, que deben ser opacos

1. 1 Concepto y terminología · Tipos de Datos Abstractos: · Colección de valores

1. 1 Concepto y terminología · Tipos de Datos Abstractos: · Colección de valores + operaciones · Se definen mediante una especificación, que es independiente de cualquier representación (abstracción) · Acceso a los valores limitado al uso de las operaciones (interfaz con el usuario limitada) · Establecida la interfaz, el programador elige la representación adecuada (implementación) · Los usuarios del TDA sólo conocen su nombre y la especificación de las operaciones · Cambios en la representación no afectarán al resto de programas

1. 1 Concepto y terminología · Tipos de Datos Abstractos: · · El lenguaje

1. 1 Concepto y terminología · Tipos de Datos Abstractos: · · El lenguaje de programación trata a los TDA’s de igual forma que a sus propios tipos de datos, es decir, como tipos opacos: · Privacidad de la representación · Protección Para que esto sea posible, la implementación deberá realizarse en un ámbito de declaración inaccesible al resto de los programas

1. 1 Concepto y terminología · Tipos de Datos Abstractos: · El conjunto de

1. 1 Concepto y terminología · Tipos de Datos Abstractos: · El conjunto de operaciones ha de permitir generar cualquier valor del tipo · Existen dos piezas de documentación bien diferenciadas: · Especificación del TDA. Es lo único que conoce el usuario del TDA. Consiste en el nombre del TDA y la especificación de las operaciones. Tienen parte sintáctica y parte semántica · Implementación del TDA. Conocida sólo por el programador del TDA. Se realiza en un lenguaje de programación concreto. Consiste en la representación del tipo y en la realización de las operaciones

1. 1 Concepto y terminología · Tipos de datos abstractos: · Se destacan los

1. 1 Concepto y terminología · Tipos de datos abstractos: · Se destacan los detalles (normalmente pocos) del comportamiento observable del tipo, que es estable. · Se ocultan los detalles (normalmente numerosos) de la implementación, que es propensa a cambios.

1. 2 Clasificación de Tipos de Datos Abstractos · · Tipos de Datos Abstractos

1. 2 Clasificación de Tipos de Datos Abstractos · · Tipos de Datos Abstractos simples: · Cambian su valor pero no su estructura espacio de almacenamiento constante · Enteros, reales, booleanos, carácter, enumerado, subrango, etc. Tipos de Datos Abstractos contenedores: · Cambian su valor y estructura (colecciones de elementos de número variable) espacio de almacenamiento variable · Listas, colas, pilas, árboles, grafos, conjuntos, etc.

1. 2 Clasificación de Tipos de Datos Abstractos · · Tipos de datos abstractos

1. 2 Clasificación de Tipos de Datos Abstractos · · Tipos de datos abstractos inmutables: · Sus casos no pueden modificarse (se crean y destruyen, pero no existen operaciones de modificación) · Representación inmutable o mutable Tipos de datos abstractos mutables: · Sus casos pueden modificarse (existen operaciones de modificación) · Representación mutable

1. 3 Especificación de Tipos de Datos Abstractos l TDA Colección de valores +

1. 3 Especificación de Tipos de Datos Abstractos l TDA Colección de valores + Operaciones Usuario Especificación Implementación del TDA Representación elegida Implementador + Representación de las operaciones

1. 3 Especificación de Tipos de Datos Abstractos · · Especificaciones informales: · Predomina

1. 3 Especificación de Tipos de Datos Abstractos · · Especificaciones informales: · Predomina el lenguaje natural · Poco precisas y breves ambigüedad · Sencillas de escribir, leer y entender Especificaciones formales: · Lenguaje algebraico verificación formal de programas · Precisas y breves · Pueden resultar más complejas de escribir, leer y entender

1. 3. 1 Especificaciones informales · Cabecera: Aparece el nombre de las operaciones. ·

1. 3. 1 Especificaciones informales · Cabecera: Aparece el nombre de las operaciones. · Descripción: Se describe de forma general en qué consiste la abstracción, sin decir nada acerca de la implementación. Los casos del TDA pueden describirse en términos de otros tipos para los cuales se espera que el lector de la especificación esté más familiarizado. Se pueden utilizar gráficos y abstracciones matemáticas. Se puede incluir en la descripción si el TDA es mutable o inmutable · Especificación de las operaciones: Para la especificación de una abstracción operacional seguiremos el siguiente modelo: nombre de la operación (entrada) devuelve (salida) · requerimientos: Esta cláusula muestra las restricciones de uso · modifica: Esta cláusula identifica las entradas que van a ser modificadas · efecto: Esta cláusula define el comportamiento

1. 3. 1 Especificaciones informales Observamos los siguientes componentes: · Cabecera: Es la información

1. 3. 1 Especificaciones informales Observamos los siguientes componentes: · Cabecera: Es la información sintáctica. Se indica el nombre de la operación y el número, orden y tipos de sus entradas y salidas. Deben darse nombres para las entradas y pueden darse para las salidas · Cuerpo: Es la información semántica. Consta de las siguientes cláusulas: · · · Requerimientos: Restringen el dominio del procedimiento o función. Cuando introducimos requerimientos, obtenemos una abstracción operacional parcial (en caso contario se dice que la abstracción es total). El que use la abstracción es el responsable de que los requerimientos se cumplan; si estos no se cumplen, los resultados pueden ser impredecibles. Si la abstracción es total, la cláusula de requerimientos puede omitirse. Se supone como requerimiento implícito (y por tanto no tiene que ser explicitado en la cláusula de requerimientos) que las entradas que figuran en la lista de parámetros de la abstracción han sido correctamente construidas mediante algún constructor del tipo Modifica: Indica los argumentos de entrada que cambian de valor tras una llamada a la abstracción operacional Efecto: Se indica el efecto que se produce al ejecutar la operación para las entradas que cumplen los requerimientos. Debe definir qué salidas son producidas y también qué modificaciones son hechas en la lista de entradas de la cláusula modifica. La cláusula efecto se escribe bajo la asumpción de que se satisface la cláusula requerimientos, y no se dice nada sobre el efecto de la abstracción cuando dicha cláusula no se satisface

1. 3 Especificación de Tipos de Datos Abstractos · El usuario de la abstracción

1. 3 Especificación de Tipos de Datos Abstractos · El usuario de la abstracción es el responsable de que se cumplan los requerimientos · Implementaciones robustas: se autoprotegen frente a valores inconsistentes · Mecanismos de protección frente a errores: · · Manejo de excepciones · Parámetros de salida de error en cada operación Puesto que las especificaciones son independientes de las implementaciones, existen requerimientos de uso (información adicional de cara al usuario)