Conceptos de programación: Abstracción

Publicado en Conceptos el 14 de October, 2007 por Lek. (4 comentarios)

Siendo éste un blog de programación, no estaría de más ir definiendo algunos de los conceptos de esta ciencia que algunos convierten en auténtico arte. Y uno de los términos más importantes (y ambiguos) es el de abstracción. No la abstracción de mirar por la ventana, evidentemente. He rebuscado en mis apuntes de la carrera por dar una definición formal y que no sea copiada de la Wikipedia (Abstracción, programación orientada a objetos, aunque es un concepto válido para cualquier tipo de programación).

La abstracción nos permite simplificar el análisis y resolución de un problema separando las características que son relevantes de aquéllas que no lo son. La relevancia dependerá fuertemente del contexto. Un ejemplo típico de abstracción es una jerarquía de objetos determinada por sus características comunes (mamíferos -> primates -> humanos) (…)
Aunque la abstracción es un concepto general aplicable a cualquier campo, nosotros estamos interesados en la abstracción que proporciona un lenguaje de programación. En este sentido, la aportación más importante ha sido el desarrollo de los lenguajes de alto nivel, que nos permiten utilizar ciertas construcciones de alto nivel en lugar de una secuencia de instrucciones máquina.

Personalmente, siempre he definido la abstracción como la capacidad de, viendo un jarrón, ver también todo el proceso de creación del jarrón; y viceversa. Cambiad “jarrón” por programa y “proceso” por código y tenéis el concepto.