110 likes | 676 Views
1.3.1. Método axiomático (o algebraico). Ejemplo: TAD Natural de los números naturales. NOMBRE Natural CONJUNTOS N Conjunto de naturales Bool Conjunto de booleanos {true, false} SINTAXIS cero: N sucesor: N N suma: N x N N esCero: N Bool
E N D
1.3.1. Método axiomático (o algebraico). • Ejemplo: TAD Natural de los números naturales. NOMBRE Natural CONJUNTOS N Conjunto de naturales Bool Conjunto de booleanos {true, false} SINTAXIS cero: N sucesor: N N suma: N x N N esCero: N Bool esIgual: N x N Bool • Cada TAD en un módulo. Tipo = sort. Axioma = equation. A.E.D. 1 Tema 1. Abstracciones y especificaciones.
1.3.1. Método axiomático (o algebraico). natural.maude fmod NATURAL is protecting BOOL . sort N . op cero : -> N . op sucesor : N -> N . op suma : N N -> N . op esCero : N -> Bool . op esIgual : N N -> Bool . … endfm NOMBRE Natural CONJUNTOS Bool Cjto. booleanos N Cjto. naturales SINTAXIS cero: N sucesor: N N suma: N x N N esCero: N Bool esIgual: N x N Bool … A.E.D. 2 Tema 1. Abstracciones y especificaciones.
1.3.1. Método axiomático (o algebraico). natural.maude fmod NATURAL is ... vars n m : N . eq esCero (cero) = true . eq esCero (sucesor (n)) = false . eq esIgual(cero, n) = esCero(n) . eq esIgual(sucesor(n), cero) = false . eq esIgual(sucesor(n), sucesor(m)) = esIgual (n, m) . eq suma (cero, n) = n . eq suma (sucesor (m), n) = sucesor (suma (m, n)) . endfm … SEMANTICA m, n N 1. esCero (cero) = true 2. esCero (sucesor (n)) = false 3. esIgual (cero, n) = esCero (n) 4. esIgual(sucesor(n),cero)=false 5. esIgual(sucesor(n),sucesor(m)) = esIgual(n, m) 6. suma (cero, n) = n 7. suma (sucesor (m), n) = sucesor (suma (m, n)) A.E.D. 3 Tema 1. Abstracciones y especificaciones.
1.3.1. Método axiomático (o algebraico). natural.maude • Ejecución de una especificación algebraica: a) suma (suma(sucesor(cero), cero), sucesor (cero) ) b) esIgual(sucesor(cero), cero) natural1.maude fmod NATURAL is ... endfm fmod NATURAL is protecting BOOL . sort N . ... endfm red suma(suma(sucesor(cero), cero), sucesor(cero)) . red esIgual(sucesor(cero), cero) . quit prueba1.maude in natural . red suma(suma(sucesor(cero), cero), sucesor(cero)) . red esIgual(sucesor(cero), cero) . quit A.E.D. 4 Tema 1. Abstracciones y especificaciones.
1.3.1. Método axiomático (o algebraico). natural1.maude • Resultado de la reducción. fmod NATURAL is protecting BOOL . sort N . ... endfm red suma(suma(sucesor (cero), cero), sucesor(cero)) . red esIgual(sucesor (cero), cero) . quit A.E.D. 5 Tema 1. Abstracciones y especificaciones.
1.3.1. Método axiomático (o algebraico). ¡¡MUY IMPORTANTE: CUIDADO CON LA ESTRICTA SINTAXIS DE MAUDE!! • Espacios en blanco necesarios: antes y después de “:”, de “->” y de “=”. • Acabar las sentencias con “ .” (espacio en blanco + punto). • Comprobar los paréntesis. • Si hay un fallo puede pasar de todo: lo indica bien, da un fallo en un sitio extraño, se queda como colgado, etc. A.E.D. 6 Tema 1. Abstracciones y especificaciones.
1.3.1. Método axiomático (o algebraico). EJERCICIOS PARA CASA (19 de octubre) • Leer y entregar resumen de la sección 2.4, y hacer los ejercicios 2.27 y 2.29. • Hacer los ejercicios del seminario de Maude (mínimo de 14) y enviarlos al Mooshak. Convalidables Tema 1. • Dentro de poco… empiezan las prácticas de la asignatura... A.E.D. 7 Tema 1. Abstracciones y especificaciones.