Prolog E Lisp
Casos: Prolog E Lisp. Pesquise 862.000+ trabalhos acadêmicosPor: FabioCorteletti • 1/6/2014 • 390 Palavras (2 Páginas) • 545 Visualizações
PROLOG
O Prolog (PROgramação em LOGica) é uma linguagem declarativa, significando que em vez de o programa estipular a maneira de chegar à solução, passo a passo, limita-se a fornecer uma descrição do problema que se pretende solucionar.
Usa umacoleção de fatos e de relações lógicas (regras) que exprimem o domínio do problema a resolver.
Não possui estruturas de controle (if-else, do-while, for, switch). Ao invés disso são utilizados métodos lógicos para declarar como o programa deverá atingir seu objetivo.
Algumas característica são:
- unificação: mecanismo de ligar os conteúdos das variáveis e pode ser visto como um tipo de atribuição.c.
- recursão: repetição de um objeto de um jeito similar ao que já fora mostrado.
- backtracking:refinamento da busca por força bruta.
Aplicabilidade na IA (inteligência artificial):
- aperfeiçoamento dos agentes inteligentes da IA através de suas teorias de procura.
-Aplicações de “General ProblemSolving”, como jogos de xadrez, damas, jogo da velha etc.
-planejamento automático de atividades.
Exemplo prático:
pai(arthur,silvio).
pai(arthur,carlos). Fatos
pai(carlos,xico).
pai(silvio,ricardo).
avo(X,Z) :- pai(X,Y), pai(Y,Z). Regra
?- avo(arthur,xico),avo(arthur,ricardo). Questão
Retornará a saída: "YES" Saída
LISP
A linguagem LISP é interpretada, onde o usuário digita expressões em um padrão formalmente definido e recebe de volta a avaliação de sua expressão.Cada programa em LISP, é, portanto, uma expressão.
Nela é possível usar exclusivamente funções matemáticas como estruturas de dados elementares.
Principais Características:
• Tipos de dados: átomo e a lista.
• Funções de ordem elevada: Linguagens funcionais tipicamente suportam funções de ordem elevada (exemplo: função de uma função de uma função de uma…).
• Um alto nível de abstração, especialmente quando as funções são utilizadas, suprimindo muitos detalhes da programação e minimizando a probabilidade da ocorrência de muitas classes de erros;
• A não dependência das operações de atribuição permite aos programas avaliações nas mais diferentes ordens. Esta característica de avaliação independente da ordem torna as linguagens funcionais as mais indicadas para a programação de computadores maciçamente paralelos;
• A ausência de operações de atribuição torna os programas funcionais muito mais simples para provas e análises matemáticas
...