El teorema de Boehm -Jacopini es una disposición de la programación estructurada , según la cual cualquier algoritmo ejecutable se puede convertir a una forma estructurada, es decir, a tal forma cuando el curso de su ejecución se determina solo con la ayuda de tres estructuras de control: secuencial ( secuencia inglesa ), ramificación (selección inglesa) y repeticiones o ciclos (iteración inglesa).
1. En una estructura secuencial , las instrucciones se ejecutan en el orden en que están escritas en el programa , es decir, una tras otra.
2. En la estructura de bifurcación , la secuencia de ejecución de las instrucciones depende de una condición dada, la mayoría de las veces una variable lógica .
3 . En los bucles , las declaraciones se repiten hasta que cambia alguna condición, como el valor de una variable booleana.
El teorema fue formulado y probado por los matemáticos italianos Corrado Böhm y Giuseppe Jacopini en su artículo de 1966 [1] . El artículo también describe métodos para convertir algoritmos no estructurados en algoritmos estructurados utilizando como ejemplo el lenguaje de programación P′′ creado por Boehm .
2 años después de la publicación del teorema, en 1968 Edsger Dijkstra publicó un artículo "Go To Statement Considered Harmful" [2] , en el que criticaba el uso del operador GOTO y se pronunciaba a favor de mejorar el estilo del código del programa a través de la uso de estructuras de control y el rechazo de otras instrucciones, que controlan el curso del algoritmo.
El teorema estructural de Boehm-Jacopini no fue el comienzo de la programación estructural. Este teorema es un enunciado científico utilizado por Dijkstra para fundamentar su idea de utilizar únicamente estructuras de control en los programas: estructuras secuenciales, bifurcaciones y bucles, y nada más [3] .