Como ejemplo representaremos el TAD Cola con el TAD Pila, para lo cual primero debe definirse el TAD Cola y después representarse con el TAD Pila.
Signatura:
Axiomas
La ventaja de ser tan formales radicará en la posibilidad de
demostrar formalmente que los axiomas del TAD COL, siguen valiendo
una vez representados con el TAD PIL.
Salga del menú de tipos y entre al menú
de representaciones. Elija Nuevo, el sistema le pedirá entonces
el TAD que va a representar (para este ejemplo COL), y después
el TAD con el cual lo va a representar (en este caso PIL).
![]() Como nombre de la función de representación
puede emplear PC. Una representación puede
definirse como composición de otras dos o de forma inductiva, en
nuestro caso haremos una representación inductiva. El parámetro
X del TAD PIL, corresponderá al paramétro
X del TAD COL.
![]() Los programas de nuestra representación son:
adicCOL(PC(P1),X2) = PC(adicPIL(P1,X2)) elimCOL(PC(P1)) = PC(elimPIL(P1)) infoCOL(PC(P1)) = infoPIL(P1) esCOLVacia(PC(P1)) = esPILVacia(P1) EQ_COL(PC(P1),cp(P2)) = EQ_PIL(P1,P2) Una vez haya definido la representación, puede comprobar que los axiomas del TAD COL siguen valiendo. Elija Probar del menu de representaciones ![]() ManTa usará el demostrador para probar
que los 10 axiomas del TAD COL valen con la representación.
Después le permitirá examinar las pruebas en el editor de
texto configurado.
|
En la versión 3.1 de ManTa las representaciones no se usan
en el momento de generar código en C. Esta limitación
se solucionará en una próxima versión de ManTa.
Una vez completado el mecanismo, el usuario podrá definir TADs muy
complejos y representarlos con TADs incluidos en el sistema que cuenten
con una buena implementación en C, entonces el nuevo TAD tendrá
la eficiencia del TAD con el cual se represente.