Software de programación estructurada
La programación
estructurada es una corriente que nació con la vocación de facilitar la
vida de los programadores, sobre todo cuando estos debían abordar fases de
mejora posteriores a la creación del programa, y de ordenar la forma en la que
se creaba cualquier tipo de programa. ¿Cualquiera, cualquiera? ¡Sí!
Para comprenderlo mejor, vamos
a hacer un pequeño viaje en el tiempo. Nos vamos al año 1966, cuando Böhm
y Jacopini proponen el teorema del programa estructurado, con el que
demuestran que cualquier programa puede ser escrito utilizando solo tres
instrucciones de control. Imagínate, ¡esto fue toda una revolución! Implicaba la
construcción de programas más sencillos y rápidos, en los que disminuía la
complejidad de las pruebas y el testing para ponerlos en funcionamiento.
Avanzamos dos años más en el
tiempo. En 1968, Edsger Dijkstra publicó un célebre artículo que
impactó en la computación moderna: Go To Statement Considered Harmful. ¿Por
qué es tan importante? Pues porque este científico holandés promovió
activamente el uso de lenguajes de programación estructurada, fomentando la
verificación formal de programas y la eliminación de la sentencia Goto. De
hecho, Dijkstra participó en el comité que diseñó Algol 60, el primer
lenguaje de programación estructurado.
La programación estructurada
se convierte así, junto con la programación orientada a objetos, en uno de
los paradigmas de programación más populares que ejecuta los lenguajes más
potentes que seguro conoces, incluidos, entre otros, Java, C, Python y
C++.
Características y ventajas
El teorema del programa
estructurado es la base teórica sobre la que se construyó esta nueva forma
de programar, ya que nos da la característica fundamental de la programación
estructurada. Postula que, simplemente con la combinación de tres
estructuras básicas, es suficiente para expresar cualquier función computable. Parece
sencillo, ¿verdad? En realidad, lo es y, precisamente por eso, se abre
inmediatamente el debate entre los programadores que querían continuar con el
sistema anterior y los que abrazaban estas nuevas estructuras de control con
los ojos cerrados. ¿Quién crees que ganó?
Vale, nadie fue declarado
vencedor inmediatamente, pero sí que es cierto que ‘los Digital Workers de los
años 70’ empezaban a ver poco a poco las grandes ventajas que ofrecía la
programación estructurada sobre el código espagueti (los
programas de computación antiguos que tenían una estructura de control de flujo
compleja e incomprensible). Y, ¿qué ventajas eran esas?
- Los programas desarrollados con la
programación estructurada son más sencillos de entender, ya que
tienen una estructura secuencial y desaparece la necesidad de rastrear los
complejos saltos de líneas (propios de la sentencia Goto) dentro de los
bloques de código para intentar comprender la lógica interna.
- Como consecuencia inmediata de lo
anterior, otra ventaja es que los programas resultantes tendrán una
estructura clara, gracias a que las sentencias están ligadas y
relacionadas entre sí.
- La fase de prueba y depuración de los
programas se optimiza, ya que es mucho más sencillo hacer el
seguimiento de los fallos y errores y, por tanto, detectarlos y
corregirlos.
- El coste del mantenimiento de los
programas que usan la programación estructurada es más reducido. ¿Por
qué? Pues porque modificar o extender los programas es más fácil al estar
formados por una estructura secuencial.
- Al ser más sencillos los programas, son
más rápidos de crear y los programadores aumentan su
rendimiento.
Las 3 estructuras
básicas
Ya nos ha quedado claro que la
programación estructurada es una forma de programar más sencilla que se basa
únicamente en la combinación de tres órdenes. Pero ¿cuáles son esos tipos de
estructuras de control que son capaces de expresarlo todo?
- Secuencia. La estructura secuencial
es la que se da de forma natural en el lenguaje, porque las sentencias se
ejecutan en el orden en el que aparecen en el programa, es decir, una
detrás de la otra.
- Selección o condicional. La
estructura condicional se basa en que una sentencia se ejecuta según el
valor que se le atribuye a una variable booleana. ¡Un pequeño inciso! Una
variable booleana es aquella que tiene dos valores posibles. Por tanto,
esta estructura se puede ejecutar de dos formas distintas, dependiendo del
valor que tenga su variable.
Como apunte para los verdaderos amantes de la programación: para las estructuras condicionales o de selección, Python dispone de la sentencia if, que puede combinarse con elif y/o else. - Iteración (ciclo o bucle). La
estructura de repetición ejecuta una o un conjunto de sentencias siempre
que una variable booleana sea verdadera. Para los bucles o iteraciones,
los lenguajes de programación usan las estructuras while y for.
Y solamente con estas tres
estructuras de control, ¡se pueden escribir todos los programas y aplicaciones
posibles! ¡Todos! Si estás pensando que los lenguajes de programación tienen
más estructuras, sí, es cierto, pero cualquiera de ellas puede ser construida
gracias a estas tres básicas que hemos citado.
Comentarios
Publicar un comentario