Linguagem Orientada a Agentes Allan Lima Bruno Edson
Linguagem Orientada a Agentes Allan Lima, Bruno Edson, Nancy Lyra
Roteiro • • Motivação Objetivo Escopo Pré-requisitos – Threads • Estado atual – BNF – Parser – Linguagem
Motivação Linguagem OO + Thread class Agent extends Thread{ Motor de Inferência Fatos iniciais Personalidade personalidade; Objetivos[] objetivos; . . . run(){ } } Base de Conhecimento (Regras + Fatos)
Objetivo • Dar suporte nativo para criação de agentes dentro da linguagem – Estender a LOO 1 adicionando o tipo nativo chamado agente “Agente” agora passa a ser um tipo da linguagem
Escopo (!!) • Agente terá regras dentro dele e não mais em uma base externa base. De. Regras Familia. Base { Agente Pessoa { init{ Familia. Base: : inserir(objetivo) } Base de Regras run(){ } } regra encontra. Ancestrais { declaracoes Pessoa p; Objetivo o; dec. Local Pessoa pai = p. get. Pai(); Pessoa mae = p. get. Mae(); condicoes o. is. Ativo(); p == o. get. Alvo(); acoes o. desativar(); write(pai. get. Nome() ++ " e " ++ mae. get. Nome() ++ " sao ancestrais"); } }
Pré- Requisitos • A linguagem ser capaz de inicializar uma thread Estender LOO 1 para dar suporte a Thread Todo método cuja assinatura é: run() Inicializa a Thread
Estado Atual • BNF final consolidada Programa : : = "{" Dec. Elementos "; " Comando "}" Dec. Elementos : : = Dec. Classe | Dec. Agente | Dec. Elementos "; " Dec. Elementos
Estado Atual Dec. Classe : : = "classe" Id "{" Dec. Variavel "; " Dec. Procedimento "}" Dec. Agente : : = "agente" Id "{" Inicializacao "; " Dec. Bases. De. Regras "}" Inicializacao : : = "init {" Lista. Comando. Agente "}" Lista. Comando. Agente = Comando. Agente | Comando. Agente "; " Lista. Comando. Agente : : = Id ": : " Comando. Base. Regras : : = "inserir" "(" Lista. Expressao ")" | "remover" "(" Lista. Expressao ")" | "atualizar" "(" Lista. Expressao ")"
Estado Atual Dec. Bases. De. Regras : : = base. De. Regras Id "{" Dec. Regra "}“ | Dec. Bases. De. Regras "; " Dec. Bases. De. Regras Dec. Regra : : = "regra" Id "{" Corpo. Regra "}" | Dec. Regra "; " Dec. Regra Corpo. Regra : : = Declaracoes Dec. Local Condicoes Acoes Declaracoes : : = "declaracoes" Dec. Variavel Dec. Local : : = "decl. Local" Dec. Variavel Condicoes : : = "condicoes" Expressao Condicoes : : = "acoes"
Estado Atual • Parser em andamento (adaptação ao java. CC) – Retirando ambigüidades – Refactoring de LOO 1 e adição de novas classes pra refletir a BNF • Identificação e Correção de bugs em LOO 1 – Variavel this não declarada – Empilhamento em um único nível • Avaliação sobre reutilização do JEOPS (algoritmo de unificação)
- Slides: 10