Turing Completo

Por que confiar em nós

Turing completo refere-se à capacidade de um sistema ou linguagem de programação de resolver qualquer problema que possa ser resolvido por uma máquina de Turing – um modelo matemático teórico inventado pelo matemático Alan Turing em 1936. Assim, saiba o que é e como funciona o Turing Completo no artigo a seguir.

O que é Turing Completo?

A completude de Turing denota a capacidade de realizar qualquer cálculo viável em um computador de uso geral.

Na ciência da computação teórica, o Turing completo é um conceito fundamental que descreve muitas tecnologias e sistemas predominantes atualmente.

Ele se estende das linguagens de programação modernas, como Python, à inteligência artificial (IA), especialmente nas áreas de aprendizado de máquina (ML) e aprendizado profundo.

Na IA, o conceito de completude de Turing reflete a capacidade dos sistemas de IA de realizar cálculos complexos e resolver uma ampla gama de problemas.

Essencialmente, Turing completo define um sistema que possui a capacidade de navegar por cálculos complexos, dependendo de recursos suficientes, como tempo e memória.

A integridade de Turing não se limita aos sistemas tecnológicos. Seus princípios podem ser aplicados de forma mais ampla a qualquer sistema que possa simular uma máquina de Turing.

A Techopedia explica o significado de Turing Completo

A máquina de Turing em si é uma máquina hipotética composta de três componentes teóricos: um conjunto limitado de estados, uma quantidade infinita de armazenamento e uma função de transição. Com esses atributos, a máquina de Turing representa certos limites da computação tradicional.

Uma representação simples de uma máquina de Turing consiste no seguinte:

Fita

Uma fita que é dividida em células, uma ao lado da outra. Cada célula inclui um símbolo de um determinado alfabeto finito. O alfabeto inclui um símbolo único em branco, bem como um ou mais outros símbolos. O volume de fita necessário para a computação está sempre incluído na máquina de Turing.

Cabeçote

Um cabeçote que é capaz de gravar e ler símbolos na fita. Em alguns modelos, o cabeçote se move enquanto a fita está fixa.

Registro de estado

Um registro de estado armazena o estado da máquina de Turing. Há um estado inicial especial por meio do qual o registro de estado é inicializado.

Tabela finita

Uma tabela finita (às vezes chamada de função de transição ou tabela de ações) de instruções, que geralmente são quíntuplas, mas ocasionalmente quádruplas.

A Techopedia explica o significado de Turing Completo
A Techopedia explica o significado de Turing Completo

Apesar de sua simplicidade, uma máquina de Turing pode ser adaptada para replicar a lógica associada a qualquer algoritmo de computador.

Com isso em mente, diz-se que muitas linguagens de programação modernas são Turing completas, o que significa que elas podem emular os mesmos princípios de computação observados na teoria de Turing.

No entanto, um detalhe técnico se aplica – porque nenhum desses sistemas tem uma quantidade infinita de armazenamento ou é executado por tempo infinito. A integridade de Turing é avaliada de acordo com o que as regras permitem, em vez das limitações práticas.

A ideia de completude de Turing é útil na teoria moderna da computação, mas é completamente separada do Teste de Turing, que é a ideia de Turing de avaliar se as tecnologias podem simular a inteligência humana de forma eficaz.

História do Turing Completo

A primeira máquina Turing-completa teria sido o motor analítico de Charles Babbage (década de 1830) se tivesse sido construído na época em que foi projetado.

O motor analítico era um computador de uso geral mecânico digital proposto, incorporando uma unidade lógica aritmética, fluxo de controle na forma de ramificação condicional e loops e memória integrada.

O primeiro computador que era Turing completo na prática foi o ENIAC, em 1946.

Como determinar a integridade de Turing?

Em teoria, qualquer linguagem ou sistema que possa executar as operações exigidas por uma máquina de Turing pode ser considerado Turing completo.

A maneira mais comum de determinar a integridade de Turing é avaliar se o sistema ou a linguagem de programação tem os recursos necessários para simular uma máquina de Turing (ou seja, criar um emulador de máquina de Turing com ele).

Importância na computação

A completude de Turing serve como um padrão universal para avaliar o poder computacional de sistemas e linguagens de programação, desempenhando um papel significativo na formação da teoria e da prática da computação.

Do design da linguagem à arquitetura do sistema e à engenharia de software, a completude de Turing influencia vários aspectos da computação.

No desenvolvimento de software, por exemplo, ela exerce uma influência fundamental nas decisões de projeto, no desenvolvimento de algoritmos e na seleção de linguagens.

Exemplos de sistemas completos de Turing

Criptomoeda: Ethereum

A Ethereum é um exemplo de um blockchain completo de Turing – sua linguagem de script, Solidity, é completa de Turing.

Isso permite que os desenvolvedores escrevam aplicativos descentralizados e contratos inteligentes intrincados com lógica e funcionalidade complexas.

Por outro lado, o Bitcoin é considerado um Turning incompleto. A linguagem de script do Bitcoin é intencionalmente limitada em seus recursos para garantir a segurança e evitar possíveis vulnerabilidades.

Programas: Planilhas

O Microsoft Excel, conforme introduzido na década de 1980, era um Turing incompleto. O Excel suportava apenas valores escalares e não permitia funções definidas pelo usuário.

Em dezembro de 2020, a Microsoft anunciou a função LAMBDA no Excel – uma função para criar outras funções – tornando a linguagem de fórmulas do Excel Turing-completa.

Programas de planilhas semelhantes, como o Google Sheets e o Apache OpenOffice Calc, também são considerados Turing-completos quando combinados com suas respectivas linguagens de script – Google Apps Script e OpenOffice Basic.

Prós e contras do Turing Completo

Prós:

  • Pode resolver uma ampla gama de problemas computacionais;
  • Criar algoritmos e aplicativos complexos;
  • Fornece um padrão comum para avaliar os recursos computacionais.

Contras:

  • O código complexo pode conter vulnerabilidades inadvertidamente;
  • O aumento da complexidade pode levar a custos mais altos;
  • Requer recursos computacionais significativos.

O resultado final

Por definição, Turing completo refere-se à capacidade de um sistema ou linguagem de resolver qualquer problema que possa ser resolvido por uma máquina de Turing – essencialmente, ter a capacidade de navegar em cálculos complexos, dependendo de recursos suficientes, como tempo e memória.

No entanto, essa complexidade tem um custo. Embora os sistemas completos de Turing ofereçam mais funcionalidade, eles também envolvem maior complexidade e possíveis riscos de segurança, pois a probabilidade de introdução de vulnerabilidades é maior.

Perguntas frequentes

O que é Turing Completo em termos simples?

O Minecraft é Turing completo?

O DNA é Turing completo?

O que é a regra de Turing completo?

Vangie Beal
Technology Expert
Vangie Beal
Especialista em Tecnologia

Vangie Beal é instrutora de alfabetização digital baseada na Nova Escócia, Canadá, e ingressou recentemente na Techopedia. Ela é uma premiada redatora de negócios e tecnologia com 20 anos de experiência na indústria de tecnologia e publicação na web.