Em comemoração ao aniversário de Alan Turing, o Google publicou um doodle mostrando uma máquina. Que tipo de máquina é o doodle? Ele pode expressar um idioma completo de Turing?
Existem diferenças óbvias na máquina de turing clássica: uma fita finita, restrições de como o estado pode ser conectado, ...
O doodle ainda está disponível aqui
(O visor no canto superior direito mostra a saída esperada.)
A fita no meio é dividida em quadrados que podem conter um espaço em branco, um zero ou um. A cabeça está posicionada acima de um dos quadrados e é usada para leitura e escrita.
Abaixo da fita, você pode ver uma seta verde na qual você pode clicar para iniciar a máquina. Existem duas linhas de círculos ao lado, algumas das quais estão conectadas. Vou chamá-los de "estados".
Depois que a máquina inicia, o primeiro estado à direita do botão verde acende, depois o próximo à direita e assim por diante ... Cada estado contém um dos seguintes comandos:
- em branco = não fazer nada (basta passar para o próximo estado)
- 1 = escreva um na fita na posição atual da cabeça
- 0 = escreve um zero na fita na posição atual da cabeça
- seta para a esquerda = mova a cabeça um passo para a esquerda
- seta para a direita = mova a cabeça um passo para a direita
- condição: se o valor abaixo da cabeça for igual ao valor mostrado no quadrado, desça para a segunda linha de estados. caso contrário, vá para o próximo estado à direita
- salto esquerdo: retorne ao estado anterior (fixo), mas apenas na linha superior [originalmente eu esqueci esse, obrigado @Marzio!]
Não há como "sobrepor" dois saltos (um sobre o outro). A máquina para quando sai de um estado e não existe um próximo estado à sua direita.
(Após a máquina parar, o conteúdo da fita é comparado ao conteúdo da tela, mas não considero que isso faça parte da funcionalidade pretendida da máquina.)