Teorema del programa estructurat

El teorema del programa estructurat és un resultat de la teoria de llenguatges de programació.[1] Aquest teorema estableix que tota funció computable pot ser implementada per un llenguatge de programació que combini subrutines de només 3 tipus. Aquestes 3 formes també anomenades estructures de control són:[1]

  • Executar una subrutina i després una altra (estructures de seqüència)
  • Executar una subrutina seleccionada d'entre 2 rutines possibles depenent d'un valor boolea (estructures de selecció com IF-THEN-ELSE)
  • Executar una subrutina durant el temps que una variable booleana sigui certa (estructures d'iteració, cicle o bucle)

Aquest teorema demostra que la instrucció GOTO no és estrictament necessària i que per a tot programa existeix un programa equivalent que no utilitza aquesta instrucció.[2]

El experts en computació acrediten aquest teorema a un article escrit per Corrado Böhm i Giuseppe Jacopini.[3] Tot i això, David Harel va rastrejar els orígens d'aquest teorema fins a arribar a la descripció de 1946 de l'arquitectura de Von Neumann i el teorema formal de Kleene.

Referències

[modifica]
  1. 1,0 1,1 Fundamentos De Programación (en anglès). Palibrio, 2021-08-05. ISBN 978-1-5065-3798-6. 
  2. Quetglás, Gregorio Martín; García, Francisco Antonio Martínez. Introducción a la programación estructurada en C (en castellà). Universitat de València, 2003. ISBN 978-84-370-5666-1. 
  3. Pujol, Jaume; Capdevila, Jaume Pujol. Algorismes i programes. Univ. Autònoma de Barcelona, 1998. ISBN 978-84-490-0693-7. 

Vegeu també

[modifica]

Enllaços externs

[modifica]
  • Ashcroft, Edward; and Zohar Manna «The translation of go to programs to 'while' programs». Proceedings of IFIP Congress, 1971.
  • Bohm, Corrado; and Giuseppe Jacopini «Flow Diagrams, Turing Machines and Languages with Only Two Formation Rules». Communications of the ACM, 9, 5, 5-1966.
  • Harel, David «On Folk Theorems». Communications of the ACM, 23, 1980.
  • Dijkstra, Edsger «Go To Statement Considered Harmful». Communications of the ACM, 3 http://www.acm.org/classics/oct95/, 1968.