Prolog

Se você vem do universo da programação imperativa — onde cada linha de código é uma instrução para o computador executar, passo a passo — prepare-se para uma revolução no seu modo de pensar. Prolog é uma linguagem que inverte o jogo: em vez de dizer como resolver um problema, você descreve o que é o problema e deixa a máquina descobrir a solução.

O que é Prolog?

Prolog é a abreviação de Programming in Logic (Programação em Lógica). Criada no início dos anos 1970 por Alain Colmerauer e sua equipe, a linguagem nasceu do desejo de usar teoremas automáticos para processamento de linguagem natural. A ideia central é simples e poderosa: um programa Prolog é um conjunto de fatos e regras que descrevem relações. O motor de inferência da linguagem usa esses elementos para deduzir novas informações a partir das consultas que você faz.

Enquanto em Python ou C você escreve algo como x = 2 + 2 para calcular um valor, em Prolog você declara verdades como pai(jose, ana). e pergunta ao sistema: “Quem é o pai de ana?” A resposta não vem de um algoritmo passo a passo, mas de um processo de unificação e backtracking automático.

Paradigma Declarativo vs. Imperativo

Para entender a diferença, pense em duas abordagens para chegar a um destino:

Paradigma Imperativo (Python, C, Java)Paradigma Declarativo (Prolog)
Você descreve o caminho: vire à esquerda, ande 100m, vire à direita…Você descreve o destino: quero chegar à praça central. O sistema descobre a rota.
O foco está no controle — como as instruções são executadas.O foco está na lógica — quais relações e fatos são verdadeiros.
Variáveis são reatribuídas continuamente.Variáveis, uma vez ligadas a um valor, só mudam via backtracking (desfazendo a ligação).
O programa é uma sequência de comandos.O programa é uma base de conhecimento com fatos e regras.

Em Prolog, você não diz “calcule a raiz quadrada”. Você afirma “a raiz quadrada de X é Y se Y*Y = X” e pergunta raiz(9, R).. A diferença é sutil, mas transforma completamente a experiência de programar.

Onde Prolog é Utilizado?

Apesar de ser uma linguagem de nicho, Prolog brilha em áreas onde estrutura, conhecimento e inferência são fundamentais:

  • Inteligência Artificial (IA) e Sistemas Especialistas: MYCIN (diagnóstico médico), XCON (configuração de computadores) e sistemas modernos de raciocínio simbólico.
  • Processamento de Linguagem Natural (PNL): Análise gramatical, compreensão de texto e geração de linguagem.
  • Sistemas de Recomendação e Tutoriais Inteligentes: Regras de inferência para aconselhamento personalizado.
  • Verificação de Software e Prova de Teoremas: Raciocínio formal sobre a correção de programas.
  • Bioinformática: Modelagem de relações complexas em sequências genéticas.
Destaque: Prolog também está voltando com força em abordagens neuro-simbólicas, combinando grandes modelos de linguagem com a capacidade de raciocínio lógico e explicável do Prolog.

Guia de Instalação: SWI-Prolog

A implementação mais popular e ativa é o SWI-Prolog, disponível para todos os sistemas operacionais. Vamos instalá-la:

Windows

  1. Acesse a página de downloads do SWI-Prolog.
  2. Baixe o instalador para 64 bits (recomendado).
  3. Execute o arquivo .exe e siga as instruções do instalador.

macOS

  • Opção 1 (Instalador gráfico): Baixe o arquivo .dmg (universal para Intel e Apple Silicon) e arraste o SWI-Prolog para a pasta Applications.
  • Opção 2 (Homebrew): No terminal, execute:

Linux (Ubuntu/Debian)

O SWI-Prolog mantém um PPA oficial:

Para outras distribuições, verifique a disponibilidade do pacote ou use o Snap:

Primeiro Contato com o SWI-Prolog

Abra o terminal (ou o atalho do SWI-Prolog) e digite swipl. Você verá algo como:

O prompt ?- é a linha de consulta — ali você interage com o sistema.

Exemplo prático:

  • Salve seu programa ‘familia.pl’ em ‘C:/Prolog’
  • Em SWI-Prologo execute:
  • Acessando o diretório, execute cd(‘C:/Prolog’).
  • Para listar os programas execute ls
  • Para acessar o seu programa salvo no diretório consult(‘familia.pl’).
  • Agora pode fazer as consultas ao seu programa

Comandos Básicos:

ComandoO que faz
?- consult('meu_programa.pl'). ou ?- [meu_programa].Carrega um arquivo de código Prolog
?- [user].Digite fatos/regras diretamente no terminal (Ctrl+D no Linux/macOS ou Ctrl+Z no Windows para finalizar)
?- halt.Sai do SWI-Prolog
?- pwd.Mostra o diretório atual
?- cd('caminho').Muda o diretório de trabalho
💡 Dica: Use a tecla Tab para autocompletar e as setas para acessar o histórico de comandos.

Hello World em Prolog

Vamos criar nosso primeiro programa. Abra um editor de texto, crie um arquivo chamado hello.pl e adicione:

Agora, no terminal do SWI-Prolog, carregue o arquivo:

Faça consultas:

Observação: Prolog usa letras minúsculas para átomos (constantes como ana, jose) e maiúsculas para variáveis (X, Y, Pessoa). Esse é um erro comum para iniciantes!

Exercícios Práticos

  1. Instalação e primeiros passos: Instale o SWI-Prolog, inicie o terminal e saia usando halt.
  2. Crie um banco de dados familiar: Crie um arquivo familia.pl com fatos: pai(jose, maria)., mae(ana, maria)., pai(jose, carlos).. Carregue e consulte: Quem é pai de maria?
  3. Regras simples: Adicione irmao(X, Y) :- pai(P, X), pai(P, Y), X \= Y.. Teste: Maria e Carlos são irmãos?
  4. Listas: Teste no terminal: ?- member(3, [1,2,3,4]). (isso retorna true porque 3 está na lista).
  5. Explore: Use ?- help(consult). para ler a documentação integrada.

Boas Práticas e Referências

  • Organize seu código: Crie arquivos .pl para cada conjunto de regras (ex.: familia.pl, geometria.pl).
  • Use comentários: % para comentários de linha — ajudam a entender a lógica mais tarde.
  • Teste incrementalmente: Carregue seu arquivo com [nome]. e consulte cada regra após adicioná-la.
  • Cuidado com a ordem das regras: O Prolog tenta resolver na ordem em que você escreveu. Regras mais gerais podem bloquear as mais específicas.
  • Documentação oficial: A documentação do SWI-Prolog é excelente. Use ?- apropos(palavra). para buscar tópicos.

1 comentário em “Prolog”

Deixe um comentário