Académique Documents
Professionnel Documents
Culture Documents
Programacin estructurada
La programacin estructurada es un paradigma de programacin orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora, utilizando nicamente subrutinas y tres estructuras: secuencia, seleccin (if y switch) e iteracin (bucles for y while), considerando innecesario y contraproducente el uso de la instruccin de transferencia incondicional (GOTO), que podra conducir a "cdigo espagueti", que es mucho ms difcil de seguir y de mantener, y era la causa de muchos errores de programacin. Surgi en la dcada de 1960, particularmente del trabajo Bhm y Jacopini,[1] y una famosa carta, la sentencia goto considerada perjudicial, de Edsger Dijkstra en 1968 y fue reforzado tericamente por el teorema del programa estructurado, y prcticamente por la aparicin de lenguajes como ALGOL con adecuadas y ricas estructuras de control.
Historia
Fundamentacin terica
El teorema del programa estructurado proporciona la base terica de la programacin estructurada. Seala que tres maneras de combinar programas son suficientes para expresar cualquier funcin computable: secuencia, seleccin e iteracin. Esta observacin no se origin con el movimiento de la programacin estructurada. Estas estructuras son suficientes para describir el ciclo de instruccin de una unidad central de procesamiento, as como el funcionamiento de una mquina de Turing. Por lo tanto un procesador siempre est ejecutando un "programa estructurado" en este sentido, incluso si las instrucciones que lee de la memoria no son parte de un programa estructurado. Sin embargo, los autores usualmente acreditan el resultado a un documento escrito en 1966 por Bhm y Jacopini, posiblemente porque Dijkstra haba citado este escrito. El teorema del programa estructurado no responde a cmo escribir y analizar un programa estructurado de manera til. Estos temas fueron abordados durante la dcada de 1960 y principio de los aos 1970, con importantes contribuciones de Dijkstra, Robert W. Floyd, Tony Hoarey y David Gries.
Programacin estructurada
Debate
P. J. Plauger, uno de los primeros en adoptar la programacin estructurada, describi su reaccin con el teorema del programa estructurado: Nosotros los conversos ondeamos esta interesante pizca de noticias bajo las narices de los recalcitrantes programadores de lenguaje ensamblador que mantuvieron trotando adelante retorcidos bits de lgica y diciendo, 'Te apuesto que no puedes estructurar esto'. Ni la prueba por Bhm y Jacopini, ni nuestros repetidos xitos en escribir cdigo estructurado, los llevaron un da antes de lo que estaban listos para convencerse. Donald Knuth acept el principio de que los programas deben escribirse con demostratividad en mente, pero no estaba de acuerdo (y an est en desacuerdo)[citarequerida] con la supresin de la sentencia GOTO. En su escrito de 1974 Programacin estructurada con sentencias Goto, dio ejemplos donde crea que un salto directo conduce a cdigo ms claro y ms eficiente sin sacrificar demostratividad. Knuth propuso una restriccin estructural ms flexible: debe ser posible establecer un diagrama de flujo del programa con todas las bifurcaciones hacia adelante a la izquierda, todas las bifurcaciones hacia atrs a la derecha, y sin bifurcaciones que se crucen entre s. Muchos de los expertos en teora de grafos y compiladores han abogado por permitir slo grafos de flujo reducible[quin?][cundo?]. Los tericos de la programacin estructurada ganaron a un aliado importante en la dcada de 1970 despus de que el investigador de IBM Harlan Mills aplicara su interpretacin de la teora de la programacin estructurada para el desarrollo de un sistema de indexacin para el archivo de investigacin del New York Times. El proyecto fue un gran xito de la ingeniera, y los directivos de otras empresas lo citaron en apoyo de la adopcin de la programacin estructurada, aunque Dijkstra critic las maneras en que la interpretacin de Mills difera de la obra publicada. Tan tarde como 1987 fue todava posible elevar la cuestin de la programacin estructurada en una revista de ciencia de la computacin. Frank Rubin lo hizo en ese ao, con una carta, La sentencia GOTO considerada daina. Numerosas objeciones siguieron, incluyendo una respuesta de Dijkstra, que criticaba duramente a Rubin y las concesiones que otros escritores hicieron cuando le respondieron.
Resultado
A finales del siglo XX casi todos los cientficos estn convencidos de que es til aprender y aplicar los conceptos de programacin estructurada. Los lenguajes de programacin de alto nivel que originalmente carecan de estructuras de programacin, como FORTRAN, COBOL y BASIC, ahora las tienen.
Programacin estructurada
Representaciones grficas de los tres patrones bsicos. Los diagramas de caja (azules) fueron inventados para la nueva teora, y aqu se pueden ver sus equivalentes en los ms usados diagramas de flujo de control
Un lenguaje es descrito como estructurado en bloque cuando tiene una sintaxis para encerrar estructuras entre palabras clave tipo corchete, como una sentencia if..fi en ALGOL 68, o una seccin de cdigo entre corchetes BEGIN..END, como en PL/I - o la de llaves {...} de C y muchos otros lenguajes posteriores.
Programacin estructurada
Nuevos paradigmas
Posterior a la programacin estructurada se han creado nuevos paradigmas tales como la programacin modular, la programacin orientada a objetos, programacin por capas, etc, y el desarrollo de entornos de programacin que facilitan la programacin de grandes aplicaciones y sistemas.
Referencias
[1] Bhm, Jacopini. "Flow diagrams, turing machines and languages with only two formation rules" Comm. ACM, 9(5):366-371, May 1966 [2] GOTO for example
Bibliografa
1. Garca-Bermejo Giner, Jos Rafael (2 de 2008) (en espaol). "Programacin estructurada en C" (1 edicin). Pearson Prentice Hall. ISBN 978-84-8322-423-6. 2. Valls Ferrn, Jos Mara; Camacho Fernndez, David (9 de 2004) (en espaol). Programacin estructurada y algoritmos en Pascal (1 edicin). Pearson Alhambra. ISBN 978-84-205-4246-1. 3. (en espaol) Programacin estructurada II (1 ed. 4 imp. edicin). Enseanza Tcnica y Sistemas, S.A.. 6 de 2000. ISBN 978-84-85838-90-5. 4. (en espaol) Pseudocdigos y programacin estructurada (1 edicin). Centro Tcnico Europeo de Enseanzas Profesionales. 2 de 1997. ISBN 978-84-8199-065-2. 5. Snchez Andrs, Mara ngeles (5 de 1996) (en espaol). Programacin estructurada y fundamentos de programacin (1 edicin). McGraw-Hill / Interamericana de Espaa, S.A.. ISBN 978-84-481-0557-0.
Enlaces externos
Monografias.com: Programacin Estructurada (http://www.monografias.com/trabajos/progestructu/ progestructu.shtml) Ejercicios resueltos de Programacin Estructurada (http://diagramas-de-flujo.blogspot.com/search/label/ programacion estructurada)
Licencia
Creative Commons Attribution-Share Alike 3.0 Unported //creativecommons.org/licenses/by-sa/3.0/