FANDOM


La programación estructurada es una forma de escribir programas de computadora utilizando ciertas instrucciones de control (bucles y condicionales) y evitando el uso de la instrucción o instrucciones de transferencia incondicional (tipo GOTO).

Control de la ejecución y GOTOEditar

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.

Ventajas de la programación estructuradaEditar

Con la programación estructurada elaborar programas de computador sigue siendo una labor que demanda esfuerzo, creatividad, habilidad y cuidado.Sin embargo, con este nuevo estilo podemos obtener las siguientes ventajas:


1.- Los programas son más fáciles de entender.

Un programa estructurado puede ser leído en secuencia, de arriba hacia abajo, sin necesidad de estar saltando de un sitio a otro en la lógica, lo cual es típico de otros estilos de programación. La estructura del programa es mas clara puesto que las instrucciones están mas ligadas o relacionadas entre sí, por lo que es más fácil comprender lo que hace cada función.


2.Reducción del esfuerzo en las pruebas. El programa se puede tener listo para producción normal en un tiempo menor del tradicional; por otro lado, el seguimiento de las fallas("debugging") se facilita debido a la lógica más visible, de tal forma que los errores se pueden detectar y corregir mas fácilmente.


3.Reducción de los costos de mantenimiento.


4.Programas más sencillos y más rápidos.


5.Aumento de la productividad del programador.


6.Se facilita la utilización de las otras técnicas para el mejoramiento de la productividad en programación.


7.Los programas quedan mejor documentados internamente.

Desventajas: es relativamente difícil de aprender ya que es para expertos.

Surgimiento de la programación estructuradaEditar

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:

  • 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" (abreviadamente suele llamarse IF-THEN-ELSE).
    • Si la condición se cumple, se ejecutará "instrucción-1".
    • En caso contrario, se ejecuta "instrucción-2".
  • El bucle condicional "WHILE condición DO instrucción", que ejecuta la instrucción repetidamente mientras la condición se cumpla (abreviadamente suele llamarse WHILE-DO).

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 bm,bmcondicional CASE), pero no la instrucción GOTO, se llaman estructurados. Ver estructuras de control.

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 ello, 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.

Véase también Editar