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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

programas grandes. Para éstos, dicho estudio resulta tan costoso que se ve muy<br />

reducido o incluso abandonado <strong>en</strong> la mayoría de los casos. Dada esta situación,<br />

es muy importante disponer de una biblioteca de tipos abstractos de datos<br />

correctos cuya verificación se ha realizado indep<strong>en</strong>di<strong>en</strong>tem<strong>en</strong>te.<br />

19.4 Resum<strong>en</strong><br />

En este apartado se <strong>en</strong>umeran algunas ideas que ayudan a fijar los conceptos<br />

expuestos <strong>en</strong> este capítulo, así como otros aspectos relacionados:<br />

• Los tipos abstractos de datos permit<strong>en</strong> al programador conc<strong>en</strong>trarse <strong>en</strong> las<br />

características o propiedades deseadas para dichos tipos (o <strong>en</strong> qué servicio<br />

deb<strong>en</strong> prestar al programador), olvidándose, temporalm<strong>en</strong>te, de cómo<br />

están implem<strong>en</strong>tados (o cómo se van a implem<strong>en</strong>tar). Por consigui<strong>en</strong>te,<br />

los tipos abstractos de datos pued<strong>en</strong> considerarse como cajas negras: el<br />

programador-usuario sólo ve su comportami<strong>en</strong>to y no sabe (ni le interesa<br />

saber) qué conti<strong>en</strong><strong>en</strong>.<br />

• La definición del tipo abstracto de datos debe expresarse como una especificación<br />

no ambigua, que servirá como punto de partida para la derivación<br />

correcta de la implem<strong>en</strong>tación o para <strong>en</strong>fr<strong>en</strong>tarla a posteriori a la implem<strong>en</strong>tación<br />

<strong>en</strong> un proceso de verificación formal.<br />

• Para la aplicación de la abstracción de datos, es imprescindible que el<br />

l<strong>en</strong>guaje de programación escogido posibilite la implem<strong>en</strong>tación separada<br />

para poder llevar a cabo la ocultación de información y la “<strong>en</strong>capsulación”,<br />

es<strong>en</strong>ciales <strong>en</strong> esta técnica.<br />

• La abstracción de datos optimiza los niveles de indep<strong>en</strong>d<strong>en</strong>cia (<strong>en</strong> la línea<br />

de lo com<strong>en</strong>tado <strong>en</strong> los capítulos 8 y 9) del código de la unidad del tipo<br />

abstracto de datos y de los programas de aplicación. Como consecu<strong>en</strong>cia de<br />

ello, aum<strong>en</strong>ta la facilidad de mant<strong>en</strong>imi<strong>en</strong>to de los programas, al aislar <strong>en</strong><br />

la unidad de implem<strong>en</strong>tación del tipo abstracto los cambios, correcciones<br />

y modificaciones relativos a la repres<strong>en</strong>tación del tipo abstracto, evitando<br />

que se propagu<strong>en</strong> (innecesariam<strong>en</strong>te) a los programas de aplicación.<br />

• La abstracción de datos se puede considerar como precursora de la técnica<br />

de ori<strong>en</strong>tación a objetos (véase el apartado 5.1.3 del tomo I), <strong>en</strong> la que<br />

también se <strong>en</strong>capsulan datos y operaciones (con la difer<strong>en</strong>cia de que se<br />

añad<strong>en</strong> los mecanismos de her<strong>en</strong>cia y polimorfismo, <strong>en</strong>tre otros). 8<br />

8 A partir de la versión 5.5 de Turbo <strong>Pascal</strong> se permite una aplicación limitada de esta técnica,<br />

pero su explicación excede los propósitos de este libro.

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

Saved successfully!

Ooh no, something went wrong!