09.05.2013 Views

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

Algoritmos y Programación en Pascal

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

440 Capítulo 19. Tipos abstractos de datos<br />

19.3 Metodología de la programación de tipos<br />

abstractos de datos<br />

En los apartados anteriores se han introducido los tipos abstractos de datos<br />

de un modo paulatino, práctico e informal. Es necesario, y es lo que se hace <strong>en</strong><br />

este apartado, precisar las ideas g<strong>en</strong>erales introducidas y pres<strong>en</strong>tar los aspectos<br />

necesarios para la correcta utilización de los tipos abstractos de datos como<br />

método de programación.<br />

Sigui<strong>en</strong>do las ideas de J. Martin [Mar86], se puede definir un tipo abstracto<br />

de datos como un sistema con tres compon<strong>en</strong>tes:<br />

1. Un conjunto de objetos.<br />

2. Un conjunto de descripciones sintácticas de operaciones.<br />

3. Una descripción semántica, esto es, un conjunto sufici<strong>en</strong>tem<strong>en</strong>te completo<br />

de relaciones que especifiqu<strong>en</strong> el funcionami<strong>en</strong>to de las operaciones.<br />

Se observa que, mi<strong>en</strong>tras <strong>en</strong> el apartado anterior se describían los tipos<br />

abstractos de datos como un conjunto de objetos y una colección de operaciones<br />

sobre ellos, ahora se subraya la descripción de la sintaxis y la semántica de esas<br />

operaciones.<br />

Esto es necesario dado que la es<strong>en</strong>cia de los tipos abstractos de datos es que<br />

sus propiedades vi<strong>en</strong><strong>en</strong> descritas por su especificación, y, por tanto, es necesario<br />

tratar ésta adecuadam<strong>en</strong>te.<br />

Además, este tratami<strong>en</strong>to riguroso de las especificaciones de los tipos abstractos<br />

de datos permite ahondar <strong>en</strong> la filosofía expuesta al comi<strong>en</strong>zo del tema:<br />

separar qué hace el tipo abstracto de datos (lo cual vi<strong>en</strong>e dado por la especificación)<br />

de cómo lo lleva a cabo (lo que se da <strong>en</strong> su implem<strong>en</strong>tación). Estos dos<br />

aspectos se repasan brevem<strong>en</strong>te <strong>en</strong> los dos sigui<strong>en</strong>tes apartados.<br />

19.3.1 Especificación de tipos abstractos de datos<br />

A la hora de afrontar la especificación de un tipo abstracto de datos se dispone<br />

de diversos l<strong>en</strong>guajes variando <strong>en</strong> su nivel de formalidad. En un extremo,<br />

se ti<strong>en</strong>e el l<strong>en</strong>guaje natural, <strong>en</strong> nuestro caso el español. Las especificaciones<br />

así expresadas pres<strong>en</strong>tan importantes inconv<strong>en</strong>i<strong>en</strong>tes, <strong>en</strong>tre los que destacan su<br />

ambigüedad (que puede llegar a inutilizar la especificación, por prestarse a interpretaciones<br />

incorrectas y/o no deseadas), y la dificultad para comprobar su<br />

corrección y “completitud”.

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!