fbpx
Wikipedia

Teorema del programa estructurado

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:

  1. Secuencia: ejecución de una instrucción tras otra.
  2. Selección: ejecución de una de dos instrucciones (o conjuntos), según el valor de una variable booleana.
  3. Iteración: ejecución de una instrucción (o conjunto) mientras una variable booleana sea 'verdadera'. Esta estructura lógica también se conoce como ciclo o bucle.

Este teorema demuestra que la instrucción GOTO no es estrictamente necesaria y que para todo programa que la utilice existe otro equivalente que no hace uso de dicha instrucción.

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

La demostración de Böhm-Jacopini describe cómo construir diagramas de flujo estructurados a partir de cualquier diagrama de flujo, usando los bits de una variable entera extra para dar seguimiento a la información que el programa original representa mediante puntos de entrada en el código. Esta construcción estuvo basada en el lenguaje de programación P′′ de Böhm. La demostración de Böhm-Jacopini no esclareció la cuestión sobre cuándo convendría usar programación estructurada para el desarrollo de software, en parte porque la construcción ofuscaba el có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 "La sentencia Go To considerada dañina" en el año 1968. Posteriores estudios agregaron aproximaciones más prácticas a la demostración de Böhm-Jacopini, que mantenían o mejoraban la claridad del programa original.[1]

Referencias

Bibliografía

  • Ashcroft, Edward; and Zohar Manna (1971). «The translation of go to programs to 'while' programs». Proceedings of IFIP Congress. 
  • Bohm, Corrado; and Giuseppe Jacopini (mayo de 1966). «Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules». Communications of the ACM 9 (5): 366-371. doi:10.1145/355592.365646. 
  • Harel, David (1980). «On Folk Theorems». Communications of the ACM 23 (7): 379-389. doi:10.1145/358886.358892. 
  • Dijkstra, Edsger (1968). «Go To Statement Considered Harmful». Communications of the ACM 11 (3): 147-148. doi:10.1145/362929.362947. 
  • (en inglés) The Böhm–Jacopini Theorem is False, Propositionally

Véase también

  •   Datos: Q2635326

teorema, programa, estructurado, teorema, programa, estructurado, resultado, teoría, lenguajes, programación, establece, toda, función, computable, puede, implementada, lenguaje, programación, combine, sólo, tres, estructuras, lógicas, esas, tres, formas, tamb. El teorema del programa estructurado es un resultado en la teoria de lenguajes de programacion Establece que toda funcion computable puede ser implementada en un lenguaje de programacion que combine solo tres estructuras logicas Esas tres formas tambien llamadas estructuras de control especificamente son Secuencia ejecucion de una instruccion tras otra Seleccion ejecucion de una de dos instrucciones o conjuntos segun el valor de una variable booleana Iteracion ejecucion de una instruccion o conjunto mientras una variable booleana sea verdadera Esta estructura logica tambien se conoce como ciclo o bucle Este teorema demuestra que la instruccion GOTO no es estrictamente necesaria y que para todo programa que la utilice existe otro equivalente que no hace uso de dicha instruccion Los cientificos de la computacion usualmente acreditan el teorema a un articulo de 1966 escrito por Corrado Bohm y Giuseppe Jacopini Sin embargo David Harel rastreo sus origenes hasta la descripcion de 1946 de la arquitectura de von Neumann y el teorema de la forma normal de Kleene La demostracion de Bohm Jacopini describe como construir diagramas de flujo estructurados a partir de cualquier diagrama de flujo usando los bits de una variable entera extra para dar seguimiento a la informacion que el programa original representa mediante puntos de entrada en el codigo Esta construccion estuvo basada en el lenguaje de programacion P de Bohm La demostracion de Bohm Jacopini no esclarecio la cuestion sobre cuando convendria usar programacion estructurada para el desarrollo de software en parte porque la construccion ofuscaba el codigo del programa en lugar de mejorarlo Por otro lado fue el punto de partida para iniciar el debate Edsger Dijkstra escribio una importante carta titulada La sentencia Go To considerada danina en el ano 1968 Posteriores estudios agregaron aproximaciones mas practicas a la demostracion de Bohm Jacopini que mantenian o mejoraban la claridad del programa original 1 Referencias Editar http www cse buffalo edu rapaport 111F04 greatidea3 htmlBibliografia EditarAshcroft Edward and Zohar Manna 1971 The translation of go to programs to while programs Proceedings of IFIP Congress Bohm Corrado and Giuseppe Jacopini mayo de 1966 Flow Diagrams Turing Machines and Languages with Only Two Formation Rules Communications of the ACM 9 5 366 371 doi 10 1145 355592 365646 Harel David 1980 On Folk Theorems Communications of the ACM 23 7 379 389 doi 10 1145 358886 358892 Dijkstra Edsger 1968 Go To Statement Considered Harmful Communications of the ACM 11 3 147 148 doi 10 1145 362929 362947 https web archive org web 20070703050443 http www acm org classics oct95 en ingles The Bohm Jacopini Theorem is False PropositionallyVease tambien EditarProgramacion estructurada Diagrama Nassi Shneiderman Estructuras de control Bloque de codigo Bucle Bucle for Bucle while Bucle repetir Ciclo infinito Turing completo Datos Q2635326Obtenido de https es wikipedia org w index php title Teorema del programa estructurado amp oldid 117940054, wikipedia, wiki, leyendo, leer, libro, biblioteca,

español

, española, descargar, gratis, descargar gratis, mp3, video, mp4, 3gp, jpg, jpeg, gif, png, imagen, música, canción, película, libro, juego, juegos