Teorema de Dijkstra
De Wikipedia, la enciclopedia libre
Un famoso teorema, demostrado por Edsger Dijkstra en los años sesenta, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:
- El bloque secuencial de instrucciones, instrucciones ejecutadas sucesivamente.
- La instrucción condicional alternativa, de la forma "IF condición THEN instrucción-1 ELSE instrucción-2".
- Si la condición se cumple, se ejecutará "instrucción-1".
- En caso contrario, se ejecuta "instrucción-2".
- Abreviadamente, esta instrucción se suele llamar IF-THEN-ELSE.
- El bucle condicional "WHILE condición DO instrucción", que ejecuta la instrucción repetidamente mientras la condición se cumpla.
- En su lugar, se puede utilizar también la forma "UNTIL condición DO instrucción", que ejecuta la instrucción hasta que la condición se cumpla. Los dos bucles se diferencian entre sí porque en la forma WHILE la condición se comprueba al principio, por lo que es posible que la instrucción no se ejecute ni una sola vez.
- En cambio, en la forma UNTIL la condición se comprueba al final del bucle, por lo que la instrucción se ejecuta siempre al menos una vez.
Los programas que utilizan sólo estas tres instrucciones de control básicas o sus variantes (como los bucles FOR o la instrucción condicional CASE), pero no la instrucción GOTO, se llaman estructurados.
La "programación estructurada" (llamada también "programación sin GOTO") se convirtió durante los años setenta en la forma de programar más extendida.
A pesar de todo, la mayoría de los lenguajes conservan la instrucción GOTO y las etiquetas de las instrucciones, para utilizarla en casos muy especiales, aunque normalmente se desaconseja su uso.
Entre los lenguajes de alto nivel, Pascal, C y Ada pueden considerarse especializados en programación estructurada, y aunque todos ellos permiten utilizar la instrucción GOTO, se desaconseja su uso.