O teorema do programa estruturado [...] afirma que qualquer [...] algoritmo pode ser expresso usando apenas três estruturas de controle. Eles são
- Executando um subprograma e depois outro subprograma (sequência)
- Executando um dos dois subprogramas de acordo com o valor de uma expressão booleana (seleção)
- Executando um subprograma até que uma expressão booleana seja verdadeira (iteração)
Este teorema é desenvolvido nos seguintes artigos:
- C. Böhm, "Em uma família de máquinas de Turing e a linguagem de programação relacionada", ICC Bull., 3, 185-194, julho de 1964.
- C. Böhm, G. Jacopini, "Diagramas de fluxo, máquinas de Turing e idiomas com apenas duas regras de formação", Comm. of the ACM, 9 (5): 366-371,1966.
Infelizmente, o primeiro está praticamente indisponível, e o segundo, além de um pouco enigmático (pelo menos para mim), refere-se ao primeiro, por isso tenho problemas para entender a prova. Alguém pode me ajudar? Existe um papel ou livro moderno que apresente a prova? Obrigado.
ATUALIZAR
Para ser exato, eu gostaria de entender a segunda parte do documento do CACM (seção 3). Os autores escrevem na seção 1 o seguinte:
Na segunda parte do artigo (por C. Böhm), alguns resultados de um artigo anterior são relatados [8] e os resultados da primeira parte deste artigo são usados para provar que toda máquina de Turing é redutível em, ou em um sentido determinado é equivalente a um programa escrito em um idioma que admite como formação rege apenas composição e iteração.
Aqui [8] refere-se ao documento indisponível do ICC Bulletin. É fácil ver que a citação acima da Wikipedia se refere a esta segunda parte do artigo do CACM (a máquina de Turing serve como uma definição precisa de algoritmos; "composição" significa sequência; uma iteração pode substituir uma seleção).