Vous êtes sur la page 1sur 2

Especificacin del T.D.A.

Si consideramos las dos partes de la especificacin de un T.D.A., como son la descripcin del modelo matemtico y el conjunto de primitivas a aplicar y aplicamos un enfoque riguroso a esta ltima parte, tendramos que suministrar un conjunto de axiomas que describan completamente al conjunto de las operaciones del T.D.A., con los que ms tarde verificar formalmente la correccin de la implementacin del T.D.A. Como esto es extremadamente difcil para T.D.A's no triviales, se utilizar normalmente una especificacin "informal", usando un lenguaje natural. Describiendo los valores que pueden tomar los datos de ese tipo prescindiendo de cmo se codifiquen y describiendo las operaciones mediante un esquema similar a lo que ser la cabecera del subprograma al codificarlo, conteniendo el nombre de la funcin, argumentos y resultado, as como la indicacin de si se modifica el valor de alguno de los argumentos.

La especificacin formal nos permite definir el T.D.A. con precisin, y de forma ms rigurosa. Normalmente se utiliza el siguiente esquema: Tipo: Sintaxis: Nombre del tipo de dato. Forma de las operaciones. Se suministra una lista de las funciones de la abstraccin, indicando el tipo de los argumentos y del resultado siguiendo el esquema:

Funcin(tipo de argumentos) -> Tipo de resultado Semntica: Significado de las operaciones. Se indica el comportamiento de las funciones definidas sobre la abstraccin. Para cada funcin se dan una serie de reglas de la forma: Funcin(valores concretos) =>expresin del resultado Notas: 1. Ciertas funciones no se definen, las consideradas constructores del tipo. 2. La expresin del resultado puede ser recursiva, conteniendo referencias a la misma funcin o a otras del tipo abstracto. 3. Se considera predefinido el tipo booleano, con los valores de verdadero y falso.

Ejemplo: Tipo: Sintaxis: Natural Cero->Natural Sucesor(Natural)->Natural EsCero(Natural)->Booleano Igual(Natural, Natural)->Booleano Suma(Natural, Natural)->Natural Semntica: Para todo n, m perteneciente Natural EsCero(Cero)=>Verdadero EsCero(Sucesor(n))=>Falso Igual(Cero, n)=>EsCero(n) Igual(Sucesor(n), Cero)=>Falso Igual(Sucesor(n), Sucesor(m))=>Igual(n, m) Suma(Cero, n)=>n Suma(Sucesor(m), n)=>Sucesor(Suma(n, m)) Para facilitar la escritura de las expresiones en la parte semntica, se permite emplear expresiones condicionales que adoptan la forma: Si condicin=> Valor si verdadero | Valor si falso En ciertos casos hay que especificar funciones parciales, lo cual se har indicando que para ciertos valores de los argumentos la funcin tomar el valor predefinido Error. Ejemplo: Predecesor(Natural)->Natural Habr que aadir las reglas: Predecesor(Cero)=>Error Predecesor(Sucesor(n))=>n Otra forma de especificar cada operacin consiste en indicar sus precondiciones y postcondiciones, las cuales deben cumplirse antes y despus de la operacin respectivamente. El esquema sera el siguiente: Funcin(tipo de argumentos)->tipo de resultado Precondicin: Postcondicin:

Vous aimerez peut-être aussi