programacion estructurado

13
El teorema del programa estructurado es un resultado en la teoría de lenguajes de programación . Establece que toda función computable puede ser implementada en un lenguaje de programación que combine sólo tres estructuras lógicas. Esas tres formas (también llamadas estructuras de control ) específicamente son:

Upload: agapito26

Post on 04-Jul-2015

120 views

Category:

Documents


1 download

TRANSCRIPT

Page 2: Programacion estructurado

1Secuencia: ejecución deuna instrucción tras otra.

2Selección: ejecución deuna de dos instrucciones (oconjuntos), según el valor deuna variable booleana.

3Iteración: ejecución de unainstrucción (o conjunto)mientras una variablebooleana sea 'verdadera'.Esta estructura lógicatambién se conoce comociclo o bucle.

Page 3: Programacion estructurado

Este teorema demuestra que la instrucción GOTO noes estrictamente necesaria y que para todo programaque la utilice existe otro equivalente que no hace usode dicha instrucción.

Los científicos de la computación usualmenteacreditan el teorema a un artículo de 1966 escrito porCorrado Böhm y Giuseppe Jacopini. Sin embargo,David Harel rastreó sus orígenes hasta la descripciónde 1946 de la arquitectura de von Neumann y elteorema de la forma normal de Kleene.

Page 4: Programacion estructurado

La demostración de Böhm-Jacopini describe cómoconstruir diagramas de flujo estructurados a partir decualquier digrama de flujo, La demostración de Böhm-Jacopini no esclareció la cuestión sobre cuándo convendríausar programación estructurada para el desarrollo desoftware, en parte porque la construcción ofuscaba elcódigo del programa en lugar de mejorarlo.

Por otro lado, fue el punto de partida para iniciar el debate.Edsger Dijkstra escribió una importante carta titulada "Lasentencia Go To considerada dañina" en el año 1968.Posteriores estudios agregaron aproximaciones másprácticas a la demostración de Böhm-Jacopini, quemantenían o mejoraban la claridad del programa original.[1]

Page 5: Programacion estructurado

la idea central de la programaciónestructurada es que las estructuras decontrol deben tener un punto deentrada y uno de salida ósea hay uninicio y un fin perfectamente biendefinido de acuerdo al diagrama deflujo que se planteó al concebir laidea del programa.

Page 6: Programacion estructurado

La programación estructurada permite la escritura deprogramas fáciles de leer y modificar. En un programaestructurado el flujo lógico se gobierna por tresestructuras de control básicas: secuenciales, repetitivas y

selectivas..Se refiere a un conjunto de técnicas que han idoevolucionando. Estas técnicas aumentanconsiderablemente la productividad del programareduciendo el tiempo requerido para escribir, verificar,depurar y mantener los programas. La programaciónestructurada utiliza un número limitado de estructuras decontrol que minimizan la complejidad de los problemas yque reducen los errores. Ésta incorpora entre otroselementos: el diseño descendente, recursos abstractos yestructuras básicas.

Page 7: Programacion estructurado

Orígenes de la programa ión 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 del programa estructurado, propuesto por Böhm-Jacopini,demuestra que todo programa puede escribirse utilizando únicamentelas tres instrucciones 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 los

programas y aplicaciones posibles. Si bien los lenguajes deprogramación tienen un mayor repertorio de estructuras de control,éstas pueden ser construidas mediante las tres básicas citadas.

Page 8: Programacion estructurado

Ventajas de la programación estructurada

comparada con el modelo anterior (hoy llamado despectivamente códigoespagueti).

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 laló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 losfallos o errores del programa ("debugging") se facilita debido a su estructuramás sencilla y comprensible, por lo que los errores se pueden detectar y corregirmás fácilmente.

Reducción de los costos de mantenimiento. Análogamente a la depuración,durante la fase de mantenimiento, modificar o extender los programas resultamás fácil.

Los programas son más sencillos y más rápidos de confeccionar. Se incrementa el rendimiento de los programadores, comparado con la forma

anterior que utiliza GOTO

Page 9: Programacion estructurado

Programación estructurada de bajo nivel

En un bajo nivel, los programas estructurados con frecuencia estáncompuestos de simples estructuras de flujo de programa jerárquicas.Estas son secuencia, 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 del estado del programa. Esto es usualmente expresadocon palabras clave como if..then..else..endif, switch, o case. En algunoslenguajes las palabras clave no se puede escribir textualmente, perodebe ser delimitada (stropped).

En la "repetición" se ejecuta una sentencia hasta que el programaalcance un estado determinado, o las operaciones han sido aplicadas acada elemento de una colección. Esto es usualmente expresado conpalabras clave como while, repeat, for o do..until. A menudo serecomienda que cada bucle sólo debe tener un punto de entrada (y enla programación estructural original, también sólo un punto de salida,y pocos lenguajes refuerzan esto).

Page 10: Programacion estructurado
Page 11: Programacion estructurado

Lenguajes de programación estructurada

Es posible hacer la programación estructurada encualquier lenguaje de programación, aunque espreferible usar algo como un lenguaje de programaciónprocedimental. Algunos de los lenguajes utilizadosinicialmente para programación estructuradaincluyen: ALGOL, Pascal, PL/I y Ada – pero la mayoríade los nuevos lenguajes programaciónprocedimentales desde entonces han incluidocaracterísticas para fomentar la programaciónestructurada y a veces deliberadamente omitencaracterísticas[4] en un esfuerzo para hacer más difícilla programación no estructurada

Page 13: Programacion estructurado

Programación y diseño estructurado

En programación y diseño de algoritmos, el diseñoestructurado persigue elaborar algoritmos quecumplan la propiedad de modularidad, para ello, dadoun problema que se pretende resolver mediante laelaboración de un programa de ordenador, se buscadividir dicho programa en módulos siguiendo losprincipios de diseño de Descomposición porrefinamientos sucesivos, creación de una Jerarquíamodular y elaboración de módulos Independientes.