Programación estructurada

Una de las cuestiones más importantes que hay que tener en cuenta al construir un programa en un lenguaje de alto nivel, es el control de su ejecución.

Son raros los programas que constan de un conjunto de instrucciones que se ejecutan sucesivamente una tras otra.

En la mayor parte de los casos, diversas partes del programa se ejecutan o no, dependiendo de que se cumpla alguna condición.

Además, hay instrucciones (los bucles) que deben efectuarse varias veces, ya sea en número fijo o hasta que se cumpla una condición determinada.

Los lenguajes más antiguos (como Fortran) se apoyaban en una sola instrucción para definir el control de los programas: la instrucción GOTO (del inglés go to, que significa ir a), que corresponde a la transferencia incondicional de los lenguajes simbólicos, a la que se añade alguna forma condicional, combinada con ella, que permite bifurcar el orden de ejecución de las instrucciones.

Tanto en Fortran como en Basic, la instrucción GOTO y sus variantes van acompañadas de una o más etiquetas, que indican el número de la instrucción a la que debe dirigirse la transferencia de control.

Pero las etiquetas numéricas y las transferencias arbitrarias hacen los programas muy poco legibles y difíciles de comprender.

Como primer intento de resolver el problema, en lenguajes más modernos se recurrió a utilizar etiquetas no numéricas, igual que se hace en los lenguajes simbólicos de segunda generación.

Sin embargo, a finales de los años sesenta surgió una nueva forma de programar que reduce a la mínima expresión el uso de la instrucción GOTO y la sustituye por otras más comprensibles.

Un famoso teorema, demostrado por Edsger Dijkstra (1930-2002) en los años sesenta, demuestra que todo programa puede escribirse utilizando únicamente las tres instrucciones de control siguientes:

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 (aunque en C es una práctica común utilizarlo para manejo de errores).

Diferente que la programación estructurada la programación orientada a objetos se enfoca en reducir la cantidad de estructuras de control y reemplazarlo con el concepto de polimorfismo. Aún así los programadores todavía utilizan las estructuras de control (if, while, for, etc...) para implementar sus algoritmos porque en muchos casos es la forma más natural de hacerlo.















Tagoror.com  -  CineBSO  -  Radioaficionados.net  -  Tacoronte Guia  -  Sector Linux  -  Deranet

El contenido de Wikipedia se publica bajo la Licencia de Documentación Libre GNU.

Información Legal  -  Datos de Contacto