Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Ir a la navegaci�nIr a la b�squeda
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 recurriendo
�nicamente a subrutinas y a tres estructuras de control b�sicas: secuencia,
selecci�n (if y switch) e iteraci�n (bucles for y while); asimismo, se considera
innecesario y contraproducente el uso de la transferencia incondicional (GOTO);
esta instrucci�n suele acabar generando el llamado c�digo espagueti, mucho m�s
dif�cil de seguir y de mantener, adem�s de originar numerosos errores de
programaci�n.
�ndice
1 Elementos
1.1 Estructuras de control
1.2 Subrutinas
1.3 Bloques
2 Or�genes de la programaci�n estructurada
3 Historia
3.1 Fundamentaci�n te�rica
3.2 Debate
3.3 Resultado
4 Ventajas de la programaci�n estructurada
5 Lenguajes de programaci�n estructurada
6 Nuevos paradigmas
7 Referencias
8 Bibliograf�a
9 V�ase tambi�n
10 Enlaces externos
Elementos
Estructuras de control
Siguiendo el teorema del programa estructurado, todos los programas se ven como
compuestos de estructuras de control:
Bloques
Los Bloques se utilizan para permitir que grupos de declaraciones se traten como si
fueran una sola declaraci�n. Los lenguajes "estructurados en bloques" tienen una
sintaxis para encerrar estructuras de alguna manera formal, como una declaraci�n if
entre par�ntesis. if..fi como en ALGOL 68, o una secci�n de c�digo entre corchetes
BEGIN..END, como en PL/I y Pascal, sangr�a de espacio en blanco como en Python, o
las llaves {...} de C y muchos lenguajes posteriores.
Secuencia.
Instrucci�n condicional.
Iteraci�n (bucle de instrucciones) con condici�n inicial.
Solamente con estas tres estructuras se pueden escribir todos los programas y
aplicaciones posibles. Si bien los lenguajes de programaci�n tienen un mayor
repertorio de estructuras de control, estas pueden ser construidas mediante las
tres b�sicas citadas.
Historia
Fundamentaci�n te�rica
El teorema del programa estructurado proporciona la base te�rica de la programaci�n
estructurada. Se�ala que la combinaci�n de las tres estructuras b�sicas, secuencia,
selecci�n e iteraci�n, son suficientes para expresar cualquier funci�n computable.
Esta observaci�n no se origin� con el movimiento de la programaci�n estructurada.
Estas estructuras son suficientes para describir el ciclo de instrucci�n de una
unidad central de procesamiento, as� como el funcionamiento de una m�quina 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 B�hm y Jacopini,
posiblemente porque Dijkstra hab�a citado este escrito.4? El teorema del programa
estructurado no responde a c�mo escribir y analizar un programa estructurado de
manera �til. Estos temas fueron abordados durante la d�cada de 1960 y principio de
los a�os 1970, con importantes contribuciones de Dijkstra, Robert W. Floyd, Tony
Hoarey y David Gries.
Debate
P. J. Plauger, uno de los primeros en adoptar la programaci�n estructurada,
describi� su reacci�n 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 l�gica y diciendo, 'Te apuesto que no puedes
estructurar esto'. Ni la prueba por B�hm y Jacopini, ni nuestros repetidos �xitos
en escribir c�digo estructurado, los llevaron un d�a antes de lo que estaban listos
para convencerse.5?
Donald Knuth acept� el principio de que los programas deben adaptarse con
asertividad, pero no estaba de acuerdo (y a�n est� en desacuerdo)[cita requerida]
con la supresi�n de la sentencia GOTO. En su escrito de 1974 �Programaci�n
estructurada con sentencias Goto�, dio ejemplos donde cre�a que un salto directo
conduce a c�digo m�s claro y m�s eficiente sin sacrificar demostratividad. Knuth
propuso una restricci�n estructural m�s flexible: debe ser posible establecer un
diagrama de flujo del programa con todas las bifurcaciones hacia adelante a la
izquierda, todas las bifurcaciones hacia atr�s a la derecha, y sin bifurcaciones
que se crucen entre s�. Muchos de los expertos en teor�a de grafos y compiladores
han abogado por permitir solo grafos de flujo reducible[�qui�n?][�cu�ndo?].
Resultado
A finales del siglo XX, casi todos los cient�ficos est�n convencidos de que es �til
aprender y aplicar los conceptos de programaci�n estructurada. Los lenguajes de
programaci�n de alto nivel que originalmente carec�an de estructuras de
programaci�n, como FORTRAN, COBOL y BASIC, ahora las tienen.
Los programas son m�s f�ciles de entender, pueden ser le�dos de forma secuencial y
no hay necesidad de tener que rastrear saltos de l�neas (GOTO) dentro de los
bloques de c�digo para intentar entender la l�gica interna.
La estructura de los programas es clara, puesto que las instrucciones est�n m�s
ligadas o relacionadas entre s�.
Se optimiza el esfuerzo en las fases de pruebas y depuraci�n. El seguimiento de los
fallos o errores del programa (debugging), y con �l su detecci�n y correcci�n, se
facilita enormemente.
Se reducen los costos de mantenimiento. An�logamente a la depuraci�n, durante la
fase de mantenimiento, modificar o extender los programas resulta m�s f�cil.
Los programas son m�s sencillos y m�s r�pidos de confeccionar.
Se incrementa el rendimiento de los programadores.
Lenguajes de programaci�n estructurada
Si bien es posible desarrollar la programaci�n estructurada en cualquier lenguaje
de programaci�n, resulta m�s id�neo un lenguaje de programaci�n procedimental.
Algunos de los lenguajes utilizados inicialmente para programaci�n estructurada
incluyen ALGOL, Pascal, PL/I y Ada, pero la mayor�a de los nuevos lenguajes de
programaci�n procedimentales desde entonces han incluido caracter�sticas para
fomentar la programaci�n estructurada y a veces, deliberadamente, omiten
caracter�sticas6? en un esfuerzo para hacer m�s dif�cil la programaci�n no
estructurada.
Nuevos paradigmas
Con posterioridad a la programaci�n estructurada se han creado nuevos paradigmas
tales como la programaci�n modular, la programaci�n orientada a objetos, la
programaci�n por capas y otras, as� como nuevos entornos de programaci�n que
facilitan la programaci�n de grandes aplicaciones y sistemas.
Referencias
B�hm, Jacopini. "Flow diagrams, turing machines and languages with only two
formation rules" Comm. ACM, 9(5):366-371, May 1966, doi=10.1145/355592.365646
Edsger Dijkstra (marzo de 1968). �Go To Statement Considered Harmful�.
Communications of the ACM (PDF) 11 (3): 147-148. doi:10.1145/362929.362947. �The
unbridled use of the go to statement has as an immediate consequence that it
becomes terribly hard to find a meaningful set of coordinates in which to describe
the process progress. ... The go to statement as it stands is just too primitive,
it is too much an invitation to make a mess of one's program. �
Clark, Leslie B. Wilson, Robert G.; Robert, Clark (2000). Comparative programming
languages (3rd edici�n). Harlow, England: Addison-Wesley. p. 20. ISBN
9780201710120. Archivado desde el original el 26 de noviembre de 2015. Consultado
el 25 de noviembre de 2015.
Dijkstra, 1968.
P. J. Plauger (1993). Programming on Purpose (en ingl�s). PTR Prentice Hall. p.
20. ISBN 978-013-721-374-0.
GOTO for example
Bibliograf�a
Dijkstra, Edsger W. (Marzo 1968). �Letters to the editor: Go to statement
considered harmful�. Communications of the ACM 11 (3): 147-148. ISSN 0001-0782.
S2CID 17469809. doi:10.1145/362929.362947.
Garc�a-Bermejo Giner, Jos� Rafael (2008). Programaci�n estructurada en C (1.�
edici�n). Pearson Prentice Hall. ISBN 978-84-8322-423-6.
Valls Ferr�n, Jos� Mar�a; Camacho Fern�ndez, David (2004). Programaci�n
estructurada y algoritmos en Pascal (1.� edici�n). Pearson Alhambra. ISBN 978-84-
205-4246-1.
Programaci�n estructurada II (1.� edici�n). Ense�anza T�cnica y Sistemas, S.A.
2000. ISBN 978-84-85838-90-5.
Pseudoc�digos y programaci�n estructurada (1.� edici�n). Centro T�cnico Europeo de
Ense�anzas Profesionales. 1997. ISBN 978-84-8199-065-2.
S�nchez Andr�s, Mar�a �ngeles (1996). Programaci�n estructurada y fundamentos de
programaci�n (1.� edici�n). McGraw-Hill / Interamericana de Espa�a, S.A. ISBN 978-
84-481-0557-0.
V�ase tambi�n
Teorema del programa estructurado
Dise�o estructurado
Bloque de c�digo
Estructuras de control
Programaci�n por procedimientos
Programaci�n modular
Programaci�n orientada a objetos
Enlaces externos
Monograf�as.com: Programaci�n Estructurada
Ejercicios resueltos de Programaci�n Estructurada
Control de autoridades
Proyectos WikimediaWd Datos: Q223335IdentificadoresBNE: XX531013BNF: 11966709k
(data)GND: 4058133-0LCCN: sh85129214NKC: ph126154
Categor�as: Paradigmas de programaci�nEstructuras de controlDise�o de software
Men� de navegaci�n
No has accedido
Discusi�n
Contribuciones
Crear una cuenta
Acceder
Art�culoDiscusi�n
LeerEditarVer historial
Buscar
Buscar en Wikipedia
Portada
Portal de la comunidad
Actualidad
Cambios recientes
P�ginas nuevas
P�gina aleatoria
Ayuda
Donaciones
Notificar un error
Herramientas
Lo que enlaza aqu�
Cambios en enlazadas
Subir archivo
P�ginas especiales
Enlace permanente
Informaci�n de la p�gina
Citar esta p�gina
Elemento de Wikidata
Imprimir/exportar
Crear un libro
Descargar como PDF
Versi�n para imprimir
En otros idiomas
???????
Deutsch
English
Fran�ais
Bahasa Indonesia
Bahasa Melayu
Portugu�s
???????
??
35 m�s
Editar enlaces
Esta p�gina se edit� por �ltima vez el 13 oct 2022 a las 19:05.
El texto est� disponible bajo la Licencia Creative Commons Atribuci�n Compartir
Igual 3.0; pueden aplicarse cl�usulas adicionales. Al usar este sitio, usted acepta
nuestros t�rminos de uso y nuestra pol�tica de privacidad.
Wikipedia� es una marca registrada de la Fundaci�n Wikimedia, Inc., una
organizaci�n sin �nimo de lucro.
Pol�tica de privacidadAcerca de WikipediaLimitaci�n de responsabilidadVersi�n para
m�vilesDesarrolladoresEstad�sticasDeclaraci�n de cookiesWikimedia FoundationPowered
by MediaWiki