Pensei um pouco sobre se deveria acrescentar outra resposta. As outras respostas se concentram no meio de sua pergunta (sobre "completar", "tautologia" e assim por diante). Deixe-me pegar a primeira e a última parte e, portanto, a imagem maior e um pouco filosófica:
Mas o que isso significa?
O que significa ser completo de Turing?
Existe uma maneira de definir os recursos da Turing Machine sem apenas dizer "ser capaz de simular outra máquina de Turing"?
Informalmente, ser Turing completo significa que seu mecanismo pode executar qualquer algoritmo que você possa imaginar, não importa quão complexo, profundo, recursivo, complicado, longo (em termos de código) seja, e não importa quanto tempo ou armazenamento seria necessário para avaliá-lo. Escusado será dizer que só será bem-sucedido se o problema for computável, mas se for computável, será bem - sucedido (parada).
(NB: para descobrir por que isso é "informal", confira a tese de Church-Turing que segue essas linhas, com uma redação mais elaborada; sendo uma tese, ela pode ou não estar correta. Obrigado a @DavidRicherby por apontando esta pequena omissão em um comentário.)
"Algoritmo" significa o que geralmente entendemos como algoritmo de computador hoje; isto é, uma série de etapas discretas manipulando armazenamento, com alguma lógica de controle misturada. Porém, não é como uma máquina Oracle, ou seja, não pode "adivinhar".
Exemplo para uma linguagem prática não-tc
Se você se programou, provavelmente conhece expressões regulares, usadas para corresponder as strings a algum padrão.
Este é um exemplo de uma construção que não é Turing Complete. Você pode encontrar facilmente exercícios onde é simplesmente impossível criar uma expressão regular que corresponda a determinadas frases.
Por exemplo (e isso certamente irritou muitos programadores em aplicações reais reais), é teórica e praticamente impossível criar uma expressão regular que corresponda a uma linguagem de programação ou a um documento XML: é impossível para um regexp encontrar a estrutura do bloco ( do ... end
ou { ... }
em idiomas; abrindo e fechando tags em documentos XML) se eles puderem ser arbitrariamente profundos. Se houver um limite lá, por exemplo, você só pode ter 3 níveis de "recursão", e poderá encontrar uma expressão regular; mas se não for limitado, é impossível.
Como é obviamente possível criar um programa em uma linguagem completa de Turing (como C) para analisar o código-fonte (qualquer compilador faz isso), expressões regulares nunca serão capazes de simular o referido programa, portanto, por definição, não são completas de Turing
Motivação
A idéia da máquina de turing em si não é nada prática; isto é, Turing certamente não o inventou para criar um computador real ou algo parecido, ao contrário de Charles Babbage ou von Neumann, por exemplo. O ponto de ter o conceito da Máquina de Turing é que é extremamente simples. Consiste em quase nada. Reduz os computadores possíveis (e reais) ao mínimo que se possa imaginar.
O objetivo dessa simplificação, por sua vez, é que isso facilita (ish) refletir sobre questões teóricas (como problemas de interrupção, classes de complexidade e qualquer que seja a ciência da computação teórica que se incomode). Uma característica em particular é que geralmente é muito fácil verificar se um determinado idioma ou computador pode simular uma máquina de Turing simplesmente programando a referida máquina de Turing (que é tão fácil!) Nessa linguagem.
Ao infinito
Observe que você nunca precisa de tempo ou armazenamento infinitos ; mas o tempo e o armazenamento são ilimitados. Eles terão um valor máximo para cada execução computável, mas não há limite para o tamanho desse valor. O fato de que um computador real acabará ficando sem memória RAM é encoberto aqui; é claro que isso é um limite para qualquer computador físico, mas também é óbvio e não interessa ao "poder computacional" teórico da máquina. Além disso, não estamos interessados em quanto tempo realmente leva. Portanto, nossa pequena máquina pode usar quantidades arbitrárias de tempo e espaço, o que a torna absolutamente impraticável.
... e além
Um último ponto surpreendente, então, é que tal simples, coisa simples pode fazer tudo o que qualquer computador real concebível poderia nunca , em todo o universo, realizar (apenas muito muito mais lento) - pelo menos tanto quanto nós sabemos hoje.