La
programación estructurada es un paradigma de programación orientado a mejorar la
claridad, calidad y tiempo de desarrollo de un programa de computadora recurriendo
únicamente a subrutinas y tres estructuras básicas: secuencia, selección (if y switch)
e iteración (bucles for y while); asimismo, se considera innecesario y contraproducente el uso
de la instrucción de transferencia incondicional (GOTO), que podría conducir a código
espagueti, mucho más difícil de seguir y de mantener, y fuente de numerosos errores de
programación.
Surgió en la década de 1960, particularmente del trabajo de Böhm y Jacopini,1 y un famoso
escrito de 1968: «La sentencia goto, considerada perjudicial», de Edsger Dijkstra.2 Sus
postulados se verían reforzados, a nivel teórico, por el teorema del programa estructurado y, a
nivel práctico, por la aparición de lenguajes como ALGOL, dotado de estructuras de
control consistentes y bien formadas.
A finales de los años 1970 surgió una nueva forma de programar que no solamente permitía
desarrollar programas fiables y eficientes, sino que además estos estaban escritos de manera
que se facilitaba su comprensión en fases de mejora posteriores.
El teorema del programa estructurado, propuesto por Böhm-Jacopini, demuestra que todo
programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:
Secuencia.
Instrucción condicional.
Iteración (bucle de instrucciones) con condición inicial.
Solamente con estas tres estructuras se pueden escribir todos los programas y aplicaciones
posibles. Si bien los lenguajes de programación tienen un mayor repertorio de estructuras de
control, estas pueden ser construidas mediante las tres básicas citadas.