
O nome de Turing está relacionado intimamente com diversas contribuições na área da Computação. Vamos conhecer algumas delas:
Máquina de Turing
Formalmente, uma máquina de Turing (com uma fita) é usualmente definida como uma Tupla
, onde

é um conjunto finito de estados
é um alfabeto finito de símbolos
é o alfabeto da fita (conjunto finito de símbolos)
é o estado inicial
é o símbolo branco (o único símbolo que se permite ocorrer na fita infinitamente em qualquer passo durante a computação)
é o conjunto dos estados finais
⇒
é uma função parcial chamada função de transição, onde
é o movimento para a esquerda e
é o movimento para a direita.
A máquina de Turing é um dispositivo teórico construído para capturar formalmente a noção de computabilidade ou procedimento efetivo ou mecânico (tudo que pode ser feito seguindo-se diretamente um algoritmo ou um conjunto de regras). Observe que Turing conseguiu propor uma formalização para um conceito totalmente abstrato de computabilidade.
Tese de Church-Turing
Exemplos:
Máquina de Turing com múltiplas fitas.
Máquina de Turing com múltiplos cabeçotes.
Máquina de Turing com fita infinita para os dois lados.
Máquina de Turing não-determinísticas
Máquina de Turing Multidimensional
Church definiu um modelo de computabilidade diferente chamado lambda cálculo. Esse modelo de computabilidade também não conseguia ser mais poderoso que a computabilidade definida pela Máquina de Turing. A tese de Church-Turing estabelece que os limites da máquina de Turing também descreve os limites de todos os computadores.
Máquina de Turing Universal
A máquina de Turing Universal é uma máquina de Turing que pode simular uma Máquina de Turing arbitrária e uma entrada arbitrária. A máquina de Turing Universal é a origem da dualidade programa/dado que é parte essencial da arquitetura dos computadores modernos. Observe que essa dualidade permite a ideia de um programa vírus. Um vírus é um dado/programa que explora um programa/dado para ser executado.
Turing-complete
Um sistema é dito Turing-Complete se ele pode simular uma máquina de Turing Universal ou um outro sistema Turing-Complete conhecido. Suponha que eu queira provar que a linguagem C é Turing-complete, basta eu fazer um programa que simule uma máquina de Turing Universal ou fazer um interpretador em C da linguagem brainfuck (linguagem Turing-complete conhecida).
Nenhum comentário:
Postar um comentário