Bucles y condicionales

Recuerdo que hace años alguien me preguntó algo sobre programación y, tras solventar la duda, terminé diciendo: “no te preocupes, todo esto no son más que bucles y condicionales”.
Aquella conclusión espontánea me sorprendió incluso a mí, y desde entonces he utilizado la coletilla de bucles y condicionales de forma recurrente.

La gran sorpresa me la llevé cuando, tiempo después, leí sobre el Teorema de la Estructuración de Böhm y Jacopini, en el que se afirma que cualquier programa, independientemente de su complejidad, puede construirse con tres simples piezas: Secuencia (una instrucción tras otra), Selección (condicionales) e Iteración (bucles).

En los años 60, la mayoría del código se escribía utilizando saltos incondicionales (GOTO), lo que hacía los programas difíciles de leer y de mantener. Esto llevó a que se debatiera si sería posible escribir código sin recurrir a ellos, dando lugar en 1966 al Teorema de la Estructuración formulado por Corrado Böhm y Giuseppe Jacopini.

Lo que iniciaron Böhm y Jacopini sentó las bases formales que posteriormente Edsger Dijkstra popularizó, impulsando el movimiento de la programación estructurada y la creación de lenguajes como Pascal, C, y, en general, todos los paradigmas que hoy consideramos modernos. Como dato curioso, Dijkstra acuñó el término “código espagueti” para referirse al uso indiscriminado de GOTO, una descripción que, en mi opinión, no podría ser más acertada.

Os estaréis preguntando: si todo esto ya era así a finales de los 60, ¿por qué se enseñaba BASIC en los colegios en los 90? Pues bien, la respuesta está en sus propias siglas: Beginner’s All-purpose Symbolic Instruction Code. Era un lenguaje pensado para principiantes, sencillo y accesible, que permitía aprender lógica de programación sin necesidad de un entorno complejo. En aquella época, los ordenadores escolares solían venir con BASIC preinstalado, así que era el camino más directo para que los alumnos pudieran experimentar con código real, sin compilar y sin entornos complicados.

Al final, me resulta curioso comprobar cómo detrás de toda la evolución tecnológica y de los lenguajes de programación, se sigue creando software con los mismos tres ladrillos básicos: secuencias, bucles y condicionales.
Cambian los lenguajes, cambian las herramientas, pero la lógica permanece. Quizá por eso aquella frase improvisada sigue teniendo sentido: en el fondo, la programación no es más que encontrar la forma más elegante de decir lo mismo… con bucles y condicionales.

Sé el primero en comentar

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *