linguagens lógicas alunos: emico ferreira santana silas silva santos

45
CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

Upload: internet

Post on 18-Apr-2015

111 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

CONCEITOS DELINGUAGEM DE PROGRAMAÇÃO

Linguagens Lógicas

Alunos:Emico Ferreira Santana

Silas Silva Santos

Page 2: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

ABORDAGEM:

● Expressa programas na forma de lógica simbólica;

● Um processo de inferência lógica é usado para produzir os resultados; – Não são declarados os procedimentos

para determinar os resultados; – Declarados as especificações dos

resultados desejados; ● Programas declarativos;

Page 3: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

INTRODUÇÃO AO CALCULO DE PREDICADOS:

● Proposição: – Declaração lógica que pode ou não ser verdadeira; – Consiste em objetos e relações entre si;

● Lógica Formal: – Desenvolvida para fornecer um método para descrever proposições; – Buscando que essas proposições formalmente

declaradas fossem verificadas quanto a validade; – Relação entre lógica formal e a matemática;

● Axiomas fundamentais da teoria dos números e dos conjuntos são o conjunto inicial de proposições presumidas como verdadeiras;

Page 4: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

INTRODUÇÃO AO CALCULO DE PREDICADOS:

● Lógica Simbólica: – Pode ser utilizada para as necessidades

básicas da lógica formal: ● Expressar proposições; ● Expressar relações entre proposições; ● Descrever como novas proposições podem ser

inferidas de outras que se presumem verdadeiras;

– Calculo de predicados: ● Forma particular de lógica simbólica usada

para a programação lógica;

Page 5: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

PROPOSIÇÕES:

● Os objetivos de proposições de programação lógica são apresentados por termos simples, constantes ou variáveis; – Constante:

● É um símbolo que representa um objeto; – Variável:

● É um símbolo que pode representar diferentes objetos em diferentes tempos;

– No sentido matemático;

Page 6: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

PROPOSIÇÕES:

● Proposições atômicas: – Proposições simples; – Constituído de termos compostos;

● Elemento de uma relação matemática; – Aparência de uma função matemática;

– Termo composto e formado por duas partes: ● Functor:

– Símbolo de função que nomeia a relação; ● Lista ordenada de parâmetros:

– 1-tupla: termo composto com um único parâmetro; – 2-tupla: termo composto com dois parâmetros;

Page 7: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

PROPOSIÇÕES:

●Proposições: ● Exemplo:

– homem( jack ) ● 1-tupla na relação chamada homem;

– gosta( bob, bife ) ● 2-tupla na relação chamada gosta;

– Se adicionar homem( fred ), a relação homem terá dois elementos distintos;

– Todos os termos simples dessas proposições são constantes e sem nenhuma semântica intrínseca;

● homem, jack, gosta, bob, bife e fred;

Page 8: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

PROPOSIÇÕES:

●Proposições: ● Declarado de duas maneiras:

– Proposição definida como verdadeira; – A verdade da proposição precisa ser determinado;

● Ou seja: – Podem ser declarados como fatos ou consultas;

● Proposições compostas: – Tem duas ou mais proposições atômicas, ligadas

por conectores lógicos ou operadores; ● Da mesma maneira que expressões logicas compostas

são construídas em linguagens imperativas;

Page 9: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

PROPOSIÇÕES:

●Proposições: ● Nomes, símbolos e significados dos

conectores lógicos do calculo de predicado sao os seguintes:

– Negação ( ¬ ): ¬ a (não a); – Conjunção (∩): a∩b (a e b); – Disjunção(∪): a∪b (a ou b); – Equivalência (≡): a≡b (a e equivalente a b); – Implicação:

● (⊃): a⊃b (a implica b); ● (⊂): a ⊂ b (b implica a);

Page 10: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

PROPOSIÇÕES:

●Proposições Compostas: ● ¬ : precedência mais elevada; ● ∩, e ∪ ≡ tem precedência maior que ⊃ e

⊂; ● Exemplo:

– a ∩ ¬ b ⊃ d ; ● ( a ∩ ( ¬ b ) ) ⊃ d ;

Page 11: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

PROPOSIÇÕES:

●Proposições (Variáveis): ● Variáveis podem aparecer em proposições,

mas somente quando introduzidas por símbolos especiais, os quantificadores;

● Dois quantificadores no calculo de predicado: – Sendo X uma variável e P uma proposição; – Universal: ∀ X P

● Para todo X, P e verdadeiro; – Existencial: ∃ X . P

● Existe um valor de X tal que P seja verdadeiro; ● Ponto (.), simplesmente separa a variável da proposição;

Page 12: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

PROPOSIÇÕES:

●Proposições (Variáveis): ● Exemplo:

– ∀ X . ( mulher( X ) ⊃ humano( X )) ● Significa que para qualquer valor de X, se X for

uma mulher, X e humano; – ∃ X . ( mãe( mary, X ) ⊃ homem( X ))

● Significa que existe um valor de X tal que mary e mãe de X e X e um homem (mary tem um filho);

Page 13: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

PROPOSIÇÕES:

●O escopo dos quantificadores universais e

existenciais são as proposições atômicas as

quais eles são anexados; ● Pode ser estendido utilizando parênteses; ● Os quantificadores universais e existenciais

tem precedência mais elevada do que qualquer um dos operadores;

Page 14: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

FORMA CLAUSAL :

● Calculo de Predicados: – É a base para as linguagens de programação logica;

● Minimizar redundâncias; – Problema do calculo de Predicados:

● Existem muitas maneiras diferentes de declarar proposições com o mesmo significado;

– Muita redundância; ● Não constitui um problema para logica;

– Mas o calculo de predicado será um serio problema para sistemas automatizados;

● Forma Clausal: – Forma padrão, relativamente simples, de

proposições; ● Sem perda de generalidade;

Page 15: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

FORMA CLAUSAL :

●Forma Clausal: ● Sintaxe de uma proposição na Forma Clausal:

– B1 U B2 U … U Bn ⊂ A1 ∩ A2 ∩ … ∩ An ● Sendo os As e Bs termos;

– Significado: ● Se todos os As forem verdadeiros, pelo menos um B será

verdadeiro; – Características:

● Quantificadores existenciais não são necessários; ● Quantificadores universais ficam implícitos no uso de variáveis

nas proposições atômicas; ● Nenhum outro operador além de conjunção e disjunção é

necessário; ● Ordem da clausal geral:

– Disjunção no lado esquerdo e a conjunção no lado direito;

Page 16: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

FORMA CLAUSAL :

●Forma Clausal: ● Antecedente:

– É o lado direito de uma proposição ● Consequente:

– Consequência da verdade de seu antecedente; ● Exemplos:

– gosta( bob, truta ) ⊂ gosta(bob, peixe ) ∩ peixe( truta ) ● “Se bob gosta de peixe e truta e um peixe, então bob gosta de

truta”; – pai( louis, alan ) U pai ( louis, violet ) ⊂ pai( alan, bob ) ∩

mae( violet, bob ) ∩ avo( louis, bob ) ● “Se alan e pai de bob e violet e mãe de bob e louis e avo de

bob, então louis e pai de alan ou de violet”;

Page 17: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

CALCULO DE PREDICADOS E DEMONSTRAÇÃO DE TEOREMAS :

●Calculo de Predicados e Demonstração de Teoremas:

● Calculo de Predicados oferece um método para expressar coleções de preposições;

– Um uso das coleções de preposições é determinar se quaisquer fatos interessantes ou uteis podem ser inferidos a partir das mesmas;

– Processo semelhante ao dos matemáticos, que buscam descobrir novos teoremas que possam ser inferidos a partir de axiomas e de teoremas conhecidos;

Page 18: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

CALCULO DE PREDICADOS E DEMONSTRAÇÃO DE TEOREMAS :

● Resolução: – È uma regra de inferência;

● Permite a computação de preposições inferidas a partir de proposições dadas;

● Constitui assim, um método potencial na demonstração automática de teoremas;

– Idealizada para ser aplicada a proposições na forma clausal;

Page 19: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

CONCEITO DE RESOLUÇÃO :

●Conceito de resolução: ● Supondo duas proposições com as formas:

– P1 ⊂ P2 ● P2 implica em P1;

– Q1 ⊂ Q2 ● Q2 implica em Q1;

– Supondo ainda que P1 seja idêntico a Q2, de modo que seja possível renomear P1 e Q2 como T;

● T ⊂ P2 ● Q1 ⊂ T

– Assim: ● Q1 ⊂ P2

– O Processo de inferir tal proposição a partir de duas proposições originais é uma resolução;

Page 20: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

CONCEITO DE RESOLUÇÃO :

●Conceito de resolução: ● Exemplo:

– Considerando duas proposições: ● mais_velho( joanne, jake ) ⊂ mae( joanne, jake ) ● mais_sabio( joanne, jake ) ⊂ mais_velho( joanne, jake )

– Proposição usando resolução: ● mais_sabio( joanne, jake ) ⊂ mae( joanne, jake )

– Construção da resolução: ● Os termos do lado esquerdo das duas proposições são unidos

por um E para formar o lado esquerdo da nova proposição; – Mesmo processo para o lado direito;

● O termo que aparece em ambos os lados da nova proposição e removido;

Page 21: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

CONCEITO DE RESOLUÇÃO :

●Conceito de resolução: ● Exemplo:

– Considerando duas proposições: ● pai( bob, jake ) U mae( bob, jake ) ⊂ pais( bob, jake )

– Se: bob é um dos pais de jake, isto implica que bob é ou o pai ou a mãe de jake;

● avo( bob, fred ) ⊂ pai( bob, jake ) ∩ pai( jake, fred ) – E: bob é pai de jake e jake é pai de fred, isto implica que bob é avô

de fred;

– Proposição usando resolução: ● pai( bob, jake), é a proposição atômica que permitiu a operação; ● mae( bob, jake ) U avo( bob, fred ) ⊂ pais( bob, jake ) ∩ pai( jake,

fred ) – Entao:

● Se: bob é um dos pais de jake e jake é o pai de fred, então ou bob é mãe de jake ou bob é avô de fred;

Page 22: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

CONCEITO DE RESOLUÇÃO :

●Conceito de resolução: ● Os conceitos, em geral são mais

complexos que os exemplos; – Principalmente com variáveis em proposições;

● A resolução precisa determinar os valores para essas variáveis para que o processo de comparação possa ocorrer;

● Unificação: – Processo de determinar valores uteis;

● Instanciação: – Atribuição temporária de valores a variáveis para

permitir a unificação;

Page 23: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

CONCEITO DE RESOLUÇÃO :

●Conceito de resolução: ● Capacidade de detectar inconsistência em

um conjunto de dado de proposição: – Essa propriedade permite que a resolução seja

usada para demonstrar teoremas: ● Prova pela contradição:

– Método de prova indireta, não-construtiva; – Assumindo-se como verdade o contrario do que

queremos provar e então chegando-se a uma contradição. ● Hipóteses:

– Proposições originais; ● Meta:

– A negação do teorema;

Page 24: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

CONCEITO DE RESOLUÇÃO :

●Conceito de resolução: ● Demonstração de teoremas e a base da

programação logica; – Lista de fatos dados; – Relações como hipóteses; – Meta a ser inferida a partir das hipóteses;

● Utilizado a resolução; ● Quando proposições são usadas para

resolução, somente um tipo restrito de forma clausal pode ser ativado;

– Simplifica o processo de resolução;

Page 25: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

CLÁUSULAS DE HORN :

●Cláusulas de Horn: ● Tipos especiais de proposições; ● Podem estar em somente duas formas:

– Uma única proposição atômica no lado esquerdo; – Ou, lado esquerdo vazio;

● Cláusulas de Horn encabeçadas: – Uma única proposição atômica no lado esquerdo;

● Declaração de relações; – gosta( bob, truta ) ⊂ gosta( bob, peixe ) ∩ peixe( truta )

● Cláusulas de Horn sem-cabeça: – Lado esquerdo vazio;

● Declaração de fatos; – pai( bob, jake )

Page 26: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

CLÁUSULAS DE HORN :

●Cláusulas de Horn: ● Se a condição expressa pelo corpo da

clausula: – progenitor (X, Y) - é verdadeira então, segue

como consequência logica que a cabeça - filho(Y, X) - também o é;

– Por outro lado, se não for possível demonstrar que o corpo da cláusula é verdadeiro, o mesmo irá se aplicar à cabeça.

Page 27: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

PROGRAMAÇÃO BASEADA EM LÓGICA ●“Logic Programming”;

● Programação Baseada em Lógica é uma forma de implementar computações que coincidem com provas de teoremas;

– Se P então Q; ● onde P e Q denotam declarações;

– Podem ser verdade ou falsa, mas não ambas; ● A declaração P é a hipótese do teorema; ● Enquanto que Q é a conclusão;

● Possibilita dupla interpretação dos passos de computação que ocorrem durante a execução de um programa;

– Permitem que as especificações lógico-formais de certos problemas sejam também os próprios programas executáveis que resolvem aqueles problemas;

Page 28: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

LOGIC PROGRAMMING :

●Inspirada na observação que provar um teorema lógico “sem criatividade” é um processo intelectual bastante semelhante a acompanhar a execução de um programa imperativo passo a passo, obedecendo as regras de inferência determinadas para a logica em uso:

● E partindo de um conjunto de expressões fornecidas (conjunto de axiomas);

● Novas expressões são geradas até que uma expressão alvo seja obtida (um teorema);

● Ou alternativamente que a impossibilidade de gerar aquela expressão alvo seja estabelecida (teorema foi refutado);

Page 29: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

LOGIC PROGRAMMING :

●Expressão: ● Tanto as expressões fornecidas

originalmente, como as expressões geradas durante o processo de busca do teorema (ou impossibilidade), podem em geral ser particularizadas;

● Exemplo: – Dedução que “Sócrates é mortal”, com base nas

premissas: ● “Sócrates é um homem e todo homem é mortal”; ● “se Sócrates é homem, ele também é mortal”;

– “Sócrates é homem” fornece “Sócrates é mortal”;

Page 30: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

LOGIC PROGRAMMING :

●Particularização: ● Forma de passar parâmetros entre

sentenças; ● “todo homem é mortal”;

– “se X é homem ele também é mortal”; ● Sendo X uma variável; ● “Sócrates é homem”; ● Forneceu o valor “Sócrates” a variável X;

Page 31: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

HISTÓRIA :

●História: ● Artigo de 1965 de J. A. Robinson;

– Apresenta resultados teóricos que possibilitaram a construção de linguagens de programação baseadas em particularização de sentenças e prova de teoremas;

● Primeira metade dos anos de 1970: – Primeiras implementações Prolog;

Page 32: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

HISTORIA :

●Historia: ● Anos 1980 – Projeto de Quinta Geração:

– Objetivo principal: ● Era o desenvolvimento de hardware e software de

alto desempenho, caracterizando uma nova geração de computadores;

– Maquinas PSI (“Personal Sequential Inference machines”);

– Paradigma básico; ● Atingiram maturidade teórico e pratico;

– Desenvolvido no Japão;

Page 33: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

CARACTERÍSTICAS :

●Características: ● Linguagem Declarativa:

– Descrição do problema que se pretende computar;

– Base de Dados: ● Coleção de fatos;

– Relações Logicas (regras): ● Domínio relacional do problema;

Page 34: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

A RELAÇÃO :

●A Relação: ● Basicamente, nada existe na mente

humana sem relação; – Não podemos conceber a existência de um

objeto no mundo que não tenha uma relação no tempo e no espaço;

● Tudo é relação; ● A relação entre os objetos é que os define no mundo

– Exemplo: ● Dois irmãos existem por ter pais em comum; ● Sem a relação de paternidade a definição irmãos

não existiria;

Page 35: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

A RELAÇÃO :

●A Relação: ● A Classificação e A Seriação:

– Elementos fundamentais para a evolução cognitiva do homem, a classificação e a seriação permitem o agrupamento para discernimento e a organização hierárquica dos elementos do mundo;

● Exemplo: – Analisar o comportamento desde o nascimento:

● Inicialmente os bebes possuem movimentos de reflexos, que são repetidos durante meses ate o momento em que são combinados entre si e outros elementos sensoriais;

● Isto dá ínicio ao sistema cíclico de aprendizado; ● Uma vez portadora deste sistema, a criança pode distinguir os

objetos ao seu redor classificando-os e atribuindo a eles relações de hierarquia;

– A classificação e a seriação funcionam paralelamente;

Page 36: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

A RELAÇÃO :

●A Relação: ●É necessário que tenhamos estes conceitos

de relações na Linguagem Prolog; – Sendo que, através desta linguagem de

programação, iremos representar o mundo através de relações;

– A Linguagem de programação Prolog, que significa programação em lógica, não é baseada no sequenciamento de procedimentos, mas na definição de relações, na forma com a qual se representa o mundo que se quer implementar no computador;

Page 37: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

LINGUAGEM PROLOG :

● Implementação mais popular dos conceitos de programação em lógica; ● Alguns recursos:

– Representação e manipulação de negação explicita nas clausulas; – Funções e predicados predefinidos para a aritmética de números inteiros e de ponto flutuante; – Operadores meta-lógicos para controlar regras de escolha utilizada; – Recursos, semelhantes, de Entrada/Saída de dados;

Page 38: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

LINGUAGEM PROLOG :

● Conversão usual entre logica de notação e

linguagem de programação: – Conectivo ← pelos caracteres :- – Conectivo ^ pela virgula (,) – Terminar cada clausula com um ponto (.) – Todas as variáveis iniciam com letra

maiúscula;

Page 39: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

LINGUAGEM PROLOG :

● Especificações são Programas: – A linguagem de especificação é entendida pela máquina e

é, por si só, uma linguagem de programação; ● Naturalmente, o refinamento de especificações é mais efetivo do

que o refinamento de programas; ● Um número ilimitado de cláusulas diferentes pode ser usado e

predicados (procedimentos) com qualquer numero de argumentos são possíveis;

● Não ha distinção entre o programa e os dados; ● As cláusulas podem ser usadas com grande vantagem sobre as

construções convencionais para a representação de tipos abstratos de dados;

● A adequação da lógica para a representação simultânea de programas e suas especificações a torna um instrumento especialmente útil para o desenvolvimento de ambientes e protótipos;

Page 40: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

LINGUAGEM PROLOG :

● Capacidade Dedutiva: – O conceito de computação confunde-se com o

de (passo de) inferência; – A execução de um programa é a prova do

teorema representado pela consulta formulada, com

base nos axiomas representados pelas cláusulas (fatos e

regras) do programa;

Page 41: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

LINGUAGEM PROLOG :

● Não-determinismo: – Os procedimentos podem apresentar múltiplas respostas, da mesma forma que podem

solucionar múltiplas e aleatoriamente variáveis condições de entrada; – Através de um mecanismo especial,

denominado "backtracking", uma sequencia de resultados

alternativos pode ser obtida;

Page 42: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

LINGUAGEM PROLOG :

● Reversibilidade das Relações: – Ou "computação bidirecional"; – Os argumentos de um procedimento podem

alternativamente, em diferentes chamadas representar ora parâmetros de entrada, ora de saída;

● Os procedimentos podem assim ser projetados para atender a múltiplos propósitos;

– A execução pode ocorrer em qualquer sentido, dependendo do contexto;

● Por exemplo, o mesmo procedimento para inserir um elemento no topo de uma pilha qualquer pode ser usado, em sentido contrario, para remover o elemento que se encontrar no topo desta pilha;

Page 43: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

LINGUAGEM PROLOG :

● Tríplice Interpretação dos Programas em Logica: – Um programa em logica pode ser semanticamente interpretado de três modos distintos:

● (1) por meio da semântica declarativa, inerente à lógica; ● (2) por meio da semântica procedimental, onde as cláusulas dos

programas são vistas como entrada para um método de prova; ● (3) por meio da semântica operacional, onde as cláusulas são vistas como comandos para um procedimento particular de prova por refutação;

– Essas três interpretações são intercambiáveis segundo a particular abordagem que se mostrar mais vantajosa ao problema que se tenta solucionar;

Page 44: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

LINGUAGEM PROLOG :

● Recursão: – Forma natural de ver e representar dados e programas;

● Entretanto, na sintaxe da linguagem não ha laços do tipo "for" ou

"while": – Podem ser programados; – São desnecessários; – Não usam comandos de atribuição;

● Uma estrutura de dados contendo variáveis livres pode ser retornada

como a saída de um procedimento: – Essas variáveis livres podem ser posteriormente instanciadas por outros procedimentos produzindo o efeito de atribuições implícitas a estruturas de dados;

● Variáveis livres são automaticamente agrupadas por meio de referências transparentes ao programador;

Page 45: Linguagens Lógicas Alunos: Emico Ferreira Santana Silas Silva Santos

LINGUAGEM PROLOG :

● Vantagens: – É de aprendizado muito mais fácil e natural do que as linguagens procedimentais convencionais, podendo inclusive ser ministrada a estudantes entre o final do primeiro e o inicio do segundo grau com grande aproveitamento; – Implementa com precisão todos os novos modelos surgidos nos últimos anos, inclusive redes neurais, algoritmos genéticos, sociedades de agentes inteligentes, sistemas concorrentes e paralelos; – Permite a implementação de extensões, inclusive em nível meta, e a definição precisa de sistemas reflexivos (essenciais, por exemplo, a robótica); – Libera o programador dos problemas associados ao controle de suas rotinas, permitindo-lhe concentrar-se nos aspectos lógicos da situação a representar.