paradigma de programación qu'usa estructures de control From Wikipedia, the free encyclopedia
La programación estructurada ye un paradigma de programación empobináu a ameyorar la claridá, calidá y tiempu de desenvolvimientu d'un programa d'ordenador recurriendo namái a subrutines y tres estructures básiques: secuencia, seleición (if y switch) y iteración (bucles for y while); coles mesmes, considérase innecesariu y contraproducente l'usu de la instrucción de tresferencia incondicional (GOTO), que podría conducir a códigu espagueti, muncho más malo de siguir y de caltener, y fonte de numberosos error de programación.
Tipu |
término de ciencias de la computación (es) ![]() |
---|---|
![]() |
Surdió na década de 1960, particularmente del trabayu de Böhm y Jacopini,[1] y un famosu escritu de 1968: «La sentencia goto, considerada perxudicial», d'Edsger Dijkstra[2]. Los sos postulaos veríense reforzaos, a nivel teóricu, pol teorema del programa estructurado y, a nivel práuticu, pola apaición de llinguaxes como ALGOL, dotáu d'estructures de control consistentes y bien formaes.
A finales de los años 1970 surdió una nueva forma de programar que non solamente dexaba desenvolver programes fiables y eficientes, sinón qu'amás estos taben escritos de manera que se facilitaba la so comprensión en fases de meyora posteriores.
El teorema del programa estructurado, propuestu por Böhm-Jacopini, demuestra que tou programa puede escribise utilizando namái los trés instrucciones de control siguientes:
Solamente con estos trés estructures pueden escribise tolos programes y aplicaciones posibles. Magar los llinguaxes de programación tienen un mayor repertoriu d'estructures de control, estes pueden ser construyíes por aciu los trés básiques citaes.
El teorema del programa estructurado apurre la base teórica de la programación estructurada. Señala que la combinación de los trés estructures básiques, secuencia, seleición y iteración, son abondes pa espresar cualesquier función computable. Esta observación nun s'anició col movimientu de la programación estructurada. Estes estructures son abondes pa describir el ciclu d'instrucción d'una unidá central de procesamientu, según el funcionamientu d'una máquina de Turing. Poro, un procesador siempres ta executando un programa estructurado» nesti sentíu, inclusive si les instrucciones que llee de la memoria nun son parte d'un programa estructurado. Sicasí, los autores usualmente acrediten la resultancia a un documentu escritu en 1966 por Böhm y Jacopini, posiblemente porque Dijkstra citara esti escritu. El teorema del programa estructurado nun respuende a cómo escribir y analizar un programa estructurado de manera útil. Estes temes fueron encetaos mientres la década de 1960 y principiu de los años 1970, con importantes contribuciones de Dijkstra, Robert W. Floyd, Tony Hoarey y David Gries.
P. J. Plauger, unu de los primeros n'adoptar la programación estructurada, describió la so reacción col teorema del programa estructurado:
Nós los conversos ondeamos esta interesante plizca de noticies so les ñarices de los recalcitrantes programadores de llinguaxe ensamblador que caltuvieron trotiando alantre retorcigañaos bits de lóxica y diciendo, 'Te apuesto que nun puedes estructurar esto'. Nin la prueba por Böhm y Jacopini, nin los nuesos repitíos ésitos n'escribir códigu estructurado, llevar un día antes de lo que taben llistos pa convencese.[3]
Donald Knuth aceptó'l principiu de que los programes tienen d'escribise con demostratividad en mente, pero nun taba d'alcuerdu (y entá ta en desalcuerdu)[ensin referencies] cola supresión de la sentencia GOTO. Nel so escritu de 1974 «Programación estructurada con sentencies Goto», dio exemplos onde creía qu'un saltu direutu conduz a códigu más claru y más eficiente ensin sacrificar demostratividad. Knuth propunxo una restricción estructural más flexible: tien de ser posible establecer una diagrama de fluxu del programa con toles bifurcaciones escontra alantre a la izquierda, toles bifurcaciones escontra tras a la derecha, y ensin bifurcaciones que se crucien ente sigo. Munchos de los espertos en teoría de grafos y compiladores abogaron por dexar solu grafos de fluxu reducible[¿quién?][¿cuándo?].
Los teóricos de la programación estructurada ganáronse un aliáu importante na década de 1970 dempués de que l'investigador d'IBM Harlan Mills aplicara la so interpretación de la teoría de la programación estructurada pal desenvolvimientu d'un sistema de indexación pal archivu d'investigación del New York Times. El proyeutu foi un gran ésitu de la inxeniería, y los direutivos d'otres empreses citar en sofitu de l'adopción de la programación estructurada, anque Dijkstra criticó les maneres en que la interpretación de Mills difería de la obra publicada.
Habría qu'esperar a 1987 por que la cuestión de la programación estructurada llamara l'atención d'una revista de ciencia de la computación. Frank Rubin facer nesi añu, col escritu: «¿“La sentencia GOTO considerada dañible” considérase dañible?». A este siguiéronlu numberoses oxeciones, como una respuesta del propiu Dijkstra que criticaba duramente a Rubin y les concesiones qu'otru autores fixeron cuando lu respondieron.
A finales del sieglu XX, casi tolos científicos tán convencíos de que ye útil aprender y aplicar los conceutos de programación estructurada. Los llinguaxes de programación d'altu nivel que orixinalmente escarecíen d'estructures de programación, como FORTRAN, COBOL y BASIC, agora tener.
Ente les ventayes de la programación estructurada sobre'l modelu anterior (güei llamáu despectivamente códigu espagueti), cabo citar les siguientes:
Magar ye posible desenvolver la programación estructurada en cualquier llinguaxe de programación, resulta más aparente un llinguaxe de programación procedimental. Dalgunos de los llinguaxes utilizaos primeramente pa programación estructurada inclúin ALGOL, Pascal, PL/I y Ada, pero la mayoría de los nuevos llinguaxes de programación procedimentales dende entós incluyeron carauterístiques pa fomentar la programación estructurada y dacuando, deliberadamente, omiten carauterístiques[4] nun esfuerciu pa faer más difícil la programación non estructurada.
Con posterioridá a la programación estructurada creáronse nuevos paradigmes tales como la programación modular, la programación empobinada a oxetos, la programación por capes y otres, según nueves redolaes de programación que faciliten la programación de grandes aplicaciones y sistemes.