O que é a linguagem Prolog?
Prolog é uma linguagem de programação de computador baseada na lógica. A maioria das linguagens de computador é baseada nas etapas necessárias para resolver um problema. A linguagem Prolog, por outro lado, é uma linguagem "declarativa" que indica as relações lógicas entre as entidades. A maneira de resolver o problema é deixada para o computador. O nome Prolog vem da programação francesa em Logique, ou seja, lógica de programação.
Ancestral (P, Q):- Pai (P, R), Ancestral (R, Q)
Pai (John, Jim).
Pai (Jim, Jerry).
Pai (Jerry, Jason).
Pai (Jerry, Jeff).
Pai (Jason, Joshua).
O programa acima indica truísmos. Se F é pai de C, então F é um ancestral de C. Se P é o pai de alguma pessoa r que é um ancestral de Q, então P é um ancestral de Q. Vários fatos verdadeiros são dados, como João sendo o pai de Jim. Se então uma pergunta problemática é feita sobre se John éUm ancestral de Jeff, recebemos a resposta "sim" como abaixo:
?- Ancestral (John, Jeff).
Sim
Se os ancestrais de Josué são de interesse, então o programa exibe todos os ancestrais da seguinte maneira:
?- ancestral (a, joshua)
A = Jason
A = jerry
A = jim
A = john
Observe que, nas duas instâncias acima, o programa não disse como fazer a avaliação. Por exemplo, não indicou se deveria começar na pessoa idosa e seguir seu caminho para a pessoa mais jovem ou vice -versa. Também trocando as peças como abaixo:
ancestral (p, q):- ancestral (r, q), pai (p, r)
Não faria diferença para o programa, pois essas duas partes do lado direito precisam ser verdadeiras para que o lado esquerdo seja verdadeiro.
A linguagem Prolog se concentra, portanto, nos relacionamentos, e não em como resolver o problema. Durante a execução do programa, o Prolog aumenta um número de verdadeiros estadoMENTS, criando uma base de conhecimento. No exemplo acima, a base de conhecimento, em nenhuma ordem específica, teria ancestral (John, Jim), ancestral (Jim, Jerry), ancestral (John, Jerry), ancestral (Jim, Jason), ancestral (John, Jason) e assim por diante. Essa base de conhecimento pode continuar se acumulando à medida que o programa é executado e pode ser pesquisado com eficiência para obter soluções. A execução pode usar processamento paralelo, execução simultânea por vários computadores.
O idioma Prolog é usado em várias áreas. Começou em sistemas voltados para idiomas naturais, como o inglês; A linguagem natural é uma das áreas de inteligência artificial. A linguagem Prolog também é usada em matemática simbólica, incluindo álgebra. É usado na prova de teoremas, em sistemas especializados e em sistemas de controle, entre muitas outras aplicações.