programacion estructurada

7
La programación estructurada es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando únicamente subrutinas y tres estructuras: secuencia, selección (if y switch) e iteración (bucles for y while), considerando innecesario y contraproducente el uso de la instrucción de transferencia incondicional (GOTO), que podría conducir a "código espagueti", que es mucho más difícil de seguir y de mantener, y era la causa de muchos errores de programación. Surgió en la década de 1960, particularmente del trabajo Böhm y Jacopini,[1] y una famosa carta, la sentencia goto considerada perjudicial, de Edsger Dijkstra en 1968[] y fue reforzado teóricamente por el teorema del programa estructurado, y prácticamente por la aparición de lenguajes como ALGOL con adecuadas y ricas estructuras de control.

Upload: angel-ordonez

Post on 21-Jul-2015

74 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Programacion estructurada

La programación estructurada es un paradigma deprogramación orientado a mejorar la claridad, calidad ytiempo de desarrollo de un programa decomputadora, utilizando únicamente subrutinas y tresestructuras: secuencia, selección (if y switch) e iteración (buclesfor y while), considerando innecesario y contraproducente el usode la instrucción de transferencia incondicional (GOTO), quepodría conducir a "código espagueti", que es mucho más difícil deseguir y de mantener, y era la causa de muchos errores deprogramación.

Surgió en la década de 1960, particularmente del trabajo Böhmy Jacopini,[1] y una famosa carta, la sentencia goto consideradaperjudicial, de Edsger Dijkstra en 1968[] — y fue reforzadoteóricamente por el teorema del programa estructurado, yprácticamente por la aparición de lenguajes como ALGOL conadecuadas y ricas estructuras de control.

Page 2: Programacion estructurada

A finales de los años 1970 surgió una nueva forma de programar que nosolamente daba lugar a programas fiables y eficientes, sino que ademásestaban escritos de manera que facilitaba su mejor comprensión, nosólo proveyendo ventajas durante la fase de desarrollo, sino tambiénposibilitando una más sencilla modificación posterior. El teorema delprograma estructurado, propuesto por Böhm-Jacopini, demuestra quetodo programa puede escribirse utilizando únicamente las tresinstrucciones de control siguientes:

Secuencia

Instrucción condicional.

Iteración (bucle de instrucciones) con condición al principio.

Solamente con estas tres estructuras se pueden escribir todos losprogramas y aplicaciones posibles. Si bien los lenguajes deprogramación tienen un mayor repertorio de estructuras decontrol, éstas pueden ser construidas mediante las tres básicas citadas.

Page 3: Programacion estructurada

El teorema del programa estructurado proporciona la base teórica de laprogramación estructurada. Señala que tres maneras de combinarprogramas son suficientes para expresar cualquier función computable:secuencia, selección e iteración. Esta observación no se originó con elmovimiento de la programación estructurada. Estas estructuras sonsuficientes para describir el ciclo de instrucción de una unidad central deprocesamiento, así como el funcionamiento de una máquina de Turing.Por lo tanto un procesador siempre está ejecutando un "programaestructurado" en este sentido, incluso si las instrucciones que lee de lamemoria no son parte de un programa estructurado. Sin embargo, losautores usualmente acreditan el resultado a un documento escrito en1966 por Böhm y Jacopini, posiblemente porque Dijkstra había citadoeste escrito. El teorema del programa estructurado no responde a cómoescribir y analizar un programa estructurado de manera útil. Estos temasfueron abordados durante la década de 1960 y principio de los años1970, con importantes contribuciones de Dijkstra, Robert W. Floyd, TonyHoarey y DavidGries.

Page 4: Programacion estructurada

Ventajas de la programación estructurada comparada con el modelo anterior(hoy llamado despectivamente código espagueti).

Los programas son más fáciles de entender, pueden ser leídos de formasecuencial y no hay necesidad de hacer engorrosos seguimientos en saltos delíneas (GOTO) dentro de los bloques de código para intentar entender la lógica.

La estructura de los programas es clara, puesto que las instrucciones están másligadas o relacionadas entre sí.

Reducción del esfuerzo en las pruebas y depuración. El seguimiento de los falloso errores del programa ("debugging") se facilita debido a su estructura mássencilla y comprensible, por lo que los errores se pueden detectar y corregir másfácilmente.

Reducción de los costos de mantenimiento. Análogamente a ladepuración, durante la fase de mantenimiento, modificar o extender losprogramas resulta más fácil.

Los programas sonmás sencillos y más rápidos de confeccionar.

Se incrementa el rendimiento de los programadores, comparado con la formaanterior que utilizaGOTO.

Page 5: Programacion estructurada

En un bajo nivel, los programas estructurados con frecuencia están compuestosde simples estructuras de flujo de programa jerárquicas. Estas sonsecuencia, selección y repetición:

"Secuencia" se refiere a una ejecución ordenada de instrucciones.

En "selección", una de una serie de sentencias es ejecutada dependiendo delestado del programa. Esto es usualmente expresado con palabras clave comoif..then..else..endif, switch, o case. En algunos lenguajes las palabras clave no sepuede escribir textualmente, pero debe ser delimitada (stropped).

En la "repetición" se ejecuta una sentencia hasta que el programa alcance unestado determinado, o las operaciones han sido aplicadas a cada elemento deuna colección. Esto es usualmente expresado con palabras clave comowhile, repeat, for o do..until. A menudo se recomienda que cada bucle sólo debetener un punto de entrada (y en la programación estructural original, tambiénsólo un punto de salida, y pocos lenguajes refuerzan esto).

Un lenguaje es descrito como estructurado en bloque cuando tiene una sintaxispara encerrar estructuras entre palabras clave tipo corchete, como una sentenciaif..fi en ALGOL 68, o una sección de código entre corchetes BEGIN..END, comoen PL/I - o la de llaves {...} de C ymuchos otros lenguajes posteriores.

Page 6: Programacion estructurada

Es posible hacer la programación estructurada encualquier lenguaje de programación, aunque espreferible usar algo como un lenguaje deprogramación procedimental. Algunos de loslenguajes utilizados inicialmente para programaciónestructurada incluyen: ALGOL, Pascal, PL/I y Ada –pero la mayoría de los nuevos lenguajesprogramación procedimentales desde entonces hanincluido características para fomentar laprogramación estructurada y a vecesdeliberadamente omiten características[3] en unesfuerzo para hacer más difícil la programación noestructurada.

Page 7: Programacion estructurada

Posterior a la programación estructurada sehan creado nuevos paradigmas tales como laprogramación modular, la programaciónorientada a objetos, programación porcapas, etc, y el desarrollo de entornos deprogramación que facilitan la programaciónde grandes aplicaciones y sistemas.