Além do paradigma imperativo e declarativo, também há o paradigma lógico, um paradigma de programação que usa a lógica matemática para resolver problemas. Em vez de focar em sequências de comandos ou funções, como em outros paradigmas, o paradigma lógico utiliza regras lógicas para definir as relações entre os elementos do problema. Isso significa que o programador especifica as condições e relações que devem ser verdadeiras para obter o resultado desejado, e o sistema deduz a solução com base nessas regras. Prolog é uma das linguagens de programação que segue esse paradigma, e é amplamente usada em áreas como inteligência artificial e processamento de linguagem natural.
O nome Prolog foi escolhido por Philippe Roussel, por sugestão de sua esposa, como uma abreviação de programmation en logique ( francês para programação em lógica ). [ 76 ] Foi criado por volta de 1972 por Alain Colmerauer com Philippe Roussel, com base na interpretação procedural de cláusulas de Horn de Robert Kowalski . Foi motivado em parte pelo desejo de reconciliar o uso da lógica como uma linguagem de representação de conhecimento declarativa com a representação procedural do conhecimento que era popular na América do Norte no final dos anos 1960 e início dos anos 1970. De acordo com Robert Kowalski , o primeiro sistema Prolog foi desenvolvido em 1972 por Colmerauer e Phillipe Roussel. [ 77 ] [ 78 ] [ 79 ] A primeira implementação do Prolog foi um interpretador escrito em Fortran por Gerard Battani e Henri Meloni. David HD Warren levou esse interpretador para a Universidade de Edimburgo , e lá implementou um front-end alternativo, que veio a definir a sintaxe "Edinburgh Prolog" usada pela maioria das implementações modernas. Warren também implementou o primeiro compilador para Prolog, criando o influente DEC-10 Prolog em colaboração com Fernando Pereira. Warren mais tarde generalizou as ideias por trás do DEC-10 Prologo, para criar a Warren Abstract Machine .
PLNde linguagem natural (PLN) é uma vertente da inteligência artificial que ajuda computadores a entender, interpretar e manipular a linguagem humana. O PLN resulta de diversas disciplinas, incluindo ciência da computação e linguística computacional, que buscam preencher a lacuna entre a comunicação humana e o entendimento dos computadores.
As principais aplicações do Prolog se dão na área de computação simbólica: Em resumo Sistemas de Computação Simbólica são softwares matemáticos que permitem lidar com símbolos e obter respostas exatas para muitos problemas matemáticos, como a fatoração de números inteiros e polinômios, operações com matrizes, resolução de sistemas lineares e não lineares de equações, operações com números complexos, simplificações de expressões, cálculo de limites, derivadas e integrais, resolução de equações diferenciais e etc.
O General Problem Solver (GPS), ou Solucionador de problemas gerais, foi um programa de computador criado em 1957 por Herbert Alexander Simon, J. C. Shaw e Allen Newell destinado a funcionar como uma máquina universal de solucionar problemas. Qualquer problema simbólico formalizado poderia ser resolvido, em princípio, pelo GPS. Por exemplo: provas de teoremas, problemas em geometria e o jogo de xadrez.
Durante o projeto de Sistemas de Computadores de Quinta Geração houve tentativas de implementar o Prolog em hardware com o objetivo de obter uma execução mais rápida com arquiteturas dedicadas. Além disso, o Prolog tem uma série de propriedades que podem permitir aceleração por meio da execução paralela Uma abordagem mais recente foi compilar programas Prolog restritos em um conjunto de portas programáveis em campo No entanto, o rápido progresso em hardware de uso geral tem ultrapassado consistentemente arquiteturas mais especializadas.
A Sega implementou o Prolog para uso com o Sega AI Computer, lançado para o mercado japonês em 1986. O Prolog foi usado para ler entradas ' de linguagem natural , no idioma japonês , por meio de um touchpad . [ 50 ]
O uníco tipo de dado do Prolog é o "termo" são átomos números,variáveis ou termos compostos
Prolog é uma linguagem de programação declarativa . Isso significa que em Prolog, você não escreve o que o computador deve fazer linha por linha, como em linguagens procedurais como C e Java. A ideia geral por trás de linguagens declarativas é que você descreve uma situação. Com base nesse código, o interpretador ou compilador lhe dirá uma solução. No caso de Prolog, ele lhe dirá se uma sentença de Prolog é verdadeira ou não e, se contiver variáveis, quais devem ser os valores das variáveis.
Isso pode soar como uma dádiva para programadores, mas a verdade é que o Prolog raramente é usado puramente dessa forma. Embora a ideia declarativa seja a espinha dorsal do Prolog, é possível ver o código Prolog como procedural. Um programador Prolog geralmente fará as duas coisas, dependendo da parte do código que está lendo ou escrevendo. Ao aprender Prolog, no entanto, a experiência em programação procedural não é de forma alguma útil. (costuma-se dizer que é mais fácil aprender Prolog para alguém que não tem experiência em programação procedural do que para alguém que tem) Template:Whom
Um programa Prolog constitui-se de uma coleção de fatos (base de dados) e regras (relações lógicas), esses ítens descrevem o domínio de um determinado problema. Esta descrição do problema é avaliada por um interpretador, o qual utilizando um motor de inferência realiza deduções em busca de conclusões válidas para consultas realizadas pelos usuários. Assim, pode-se armar que a computação destes programas é equivalente a prova de um teorema em lógica.
Os fatos de Prolog permitem a de nição de predicados por meio da declaração de quais ítens pertencentes ao universo (ou domínio) satisfazem os predicados. Por exemplo, pode-se de nir o predicado homem(x) e utilizar este para de nir quais elementos do universo possuem tal predicado, no caso x é homem.
O usuário pode realizar a consulta homem(X). e receber as seguintes respostas X=pedro; X=joao; No, signicando que pedro e joao são homens, o No indica que não existem mais respostas que satisfaçam a consulta.
As computações em Prolog utilizam os conceitos de cláusulas de horn, resolução e encadeamento para trás (backtracking), com estes é possível realizar a computação de maneira equivalente a uma dedução em Lógica de 1° ordem.
Diversas implementações da linguagem Prolog podem ser encontradas, o que para muitos constitui um problema, pois estas nem sempre são totalmente compatíveis. Atualmente, existem versões livres e comerciais criadas para os principais sistemas operacionais. Algumas das implementações mais conhecidas são:
As seguintes implementações não são gratuitas:
O comando write exibe o valor do parâmetro no dispositivo de saída corrente. O dispositivo padrão é o monitor, assim, o comando write(`Teste de impressão.'). irá exibir a mensagem Teste de impressão. na tela do monitor. O mesmo comando pode ser utilizado para imprimir o valor de qualquer variável. No entanto, não existe um comando padrão Prolog para escrita de expressões formatadas. Devido a isso, o SWI-Prolog utiliza comandos de extensão, um deste é o comando writef do C-Prolog de Edinburgo. Este comando possui a seguinte sintaxe writef(Formato, Argumentos).
O comando read lê um valor no dispositivo de entrada corrente e uni ca (atribui) o valor uma variável. O dispositivo de entrada padrão é o teclado, assim, o comando read(X). irá ler um valor do teclado e uni car este valor com a variável X.
© Copyright 2024 Grupo Verde. Todos os direitos reservados.