Geração de DSLs Vamos criar agora um projeto exemplo que trabalhe não mais com a linguagem DRL, mas sim com DSL (Domain Specific Languages – Linguagens.

Slides:



Advertisements
Apresentações semelhantes
Exemplo de Projeto Vamos criar agora um projeto exemplo para verificar as condições de crédito de um conjunto de indivíduos; Nosso primeiro conjunto de.
Advertisements

Programação Orientada a Objetos*
Programação em Java Prof. Maurício Braga
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
Trabalho com tabelas de decisão
LINGUAGEM DE PROGRAMAÇÃO ORIENTADA A OBJETOS INTRODUÇÃO AOS APLICATIVOS JAVA Prof. Thiago Pereira Rique
INTRODUÇÃO AOS APLICATIVOS JAVA
Criação de Funções Conjunto de regras
XML - Extensible Markup Language
Padrão de Projeto Interpreter
Generalização, Especialização e Conceitos
Membros estáticos.
Tipos de dados, valores literais e variáveis
Treinamento no GRADEp HelloWorld Args. Slide 2 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - julho 2005 HelloWorld e Args Autoria Autora.
Templates/ Modelos Templates são documentos que podem ser usados como um modelo para outras páginas com o mesmo lay-out, ou seja, é uma espécie de frame.
Trabalho de Conclusão de Curso Moisés Alves Carneiro Filho
Documentando con Javadoc
Classes e objetos Arrays e Sobrecarga
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação JAVA
Tecnologias para Internet
C# Documentando código em XML Sharp Shooters.NET Universidade Federal de Pernambuco Centro de Informática Recife, 10/10/2002 Autor: Marden Menezes Costa.
JAVA: Conceitos Iniciais
Fiscal - Conversão de Regra de Imposto IdentificaçãoFIS_004 Data Revisão18/10/2013.
Silvane Gonçalves Analista de Sistemas
Foi criada há 22 anos, por Guido Van Rossum Por que aprender Python?
Unidade I: “Dê um mergulho rápido”
Aula prática 13 Orientação a Objetos – C++ Parte 1
Nazareno Andrade (baseado no material de Hyggo Almeida)
JAVA Linguagem Ambiente de Desenvolvimento
METODOLOGIA PARA DESENVOLVIMENTO DE SISTEMAS Prof. Dr. rer. nat. Daniel D. Abdala 1.
Industria de jogos – Uma da mais lucrativas do mundo – Grandes Desafios – Industrialização do processo de desenvolvimento – Migração do processo artesanal.
Programação I Aula 2 (Métodos)
1ª Aula de Html Íria Albuquerque.
PROGRAMAÇÃO PROCEDIMENTAL
O Portal do Estudante de Computação
Linguagem de Programação JAVA
Introdução a aplicativos Java
Prof. Alexandre Monteiro Recife
Professora Lucélia Oliveira
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Membro Static.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Tutorial de Utilização.
LPII Professora Lucélia. Pacotes Um pacote em Java é um diretório onde ficam armazenadas uma ou mais classes. Geralmente as classes com a mesma afinidade.
Programação I Laboratório I
FORMATANDO O TRABALHO NO WORD 2007
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Wagner Santos C. de Jesus
Ruby (2/2) André Braga Patrícia Lustosa. Intro Peguem a aula de ontem em /~plvr para ter como referência para os exercícios de hoje.
Programação Orientada a Objetos - Java
Analisador Léxico Prof. Alexandre Monteiro
Laboratório I Mateus Raeder Material baseado nos originais da Profa. Denise Bandeira.
PROGRAMAÇÃO ORIENTADA A OBJETOS
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
Curso de Aprendizado Industrial Desenvolvedor WEB
Construindo tabelas NTE-ESTRELA.
Laboratório de Programação II Método Construtor Dados e Métodos de Objetos Prof Edivaldo - Network.
Aula Prática 4 Monitoria IP/CC (~if669).
Análise Léxica Prof. Alexandre Monteiro
+ Java Básico Aula 1 por Flávio Juvenal. + Histórico Green Project (1991) Desenvolver plataforma para eletrodomésticos inteligentes Tentaram usar C++
JAVA Sintaxe.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Iº Workshop Linux da Unijorge
L S M W.
Package. Para que serve ? 0 Organizar classes semelhantes. 0 Diferenciar classes distintas que possuem o mesmo nome - ajuda a Java com a resolução de.
Laboratório de Programação II Método main Dados e Métodos de Classes.
1 Fórmula Visual RM. 2 Prática 05 – Criando uma Fórmula Visual de Processo Fórmula Visual RM Prática 05: criar uma fórmula visual que possa ser.
Módulo I Capítulo 7: Funções e Procedimentos William Ivanski Curso de Programação C#
Financeiro - Boleto : Remessa e Retorno
CRIANDO UMA PASTA ENTRE NA SUA PASTA PESSOAL. APLICAÇÕES/MINHA PASTA CLIQUE COM O BOTÃO DIREITO DO MOUSE E ESCOLHA A OPÇÃO PARA CRIAR NOVA PASTA.
Transcrição da apresentação:

Geração de DSLs Vamos criar agora um projeto exemplo que trabalhe não mais com a linguagem DRL, mas sim com DSL (Domain Specific Languages – Linguagens Específicas de Domínio; No Drools, você pode misturar regras escritas em DRL com regras na DSL.

Criação de uma nova DSL para o Projeto Crédito 1) Criar uma nova base de regras, com o nome creditodsl;

Criação de uma nova DSL para o Projeto Crédito 2) Selecione a opção de utilizar uma DSL, desta vez, a extensão do arquivo será DSLR; rule "Permite Crédito" when $p : Pessoa(idade >= 18) then System.out.println("Crédito Permitido para: " + $p.getNome() ); end rule "Crédito Negado" Pessoa( $nome : nome, idade < 18) System.out.println("Crédito Negado para: " + $nome);

Criação de uma nova DSL para o Projeto Crédito 3) Selecionar a pasta de regras e crie um outro recurso;

Criação de uma nova DSL para o Projeto Crédito 4) No item Drools, selecionar Domain Specific Language;

Criação de uma nova DSL para o Projeto Crédito 5) Criar um arquivo chamado credito.dsl; 6) Este arquivo será responsável por fazer a conversão do formato DSL para o formato da DRL.

Criação de uma nova DSL para o Projeto Crédito 7) Observar que o arquivo criado contém uma série de entradas padrão que exemplificam o sistema de templates;

Criação de uma nova DSL para o Projeto Crédito 8) Criar as seguintes associações: Decisão: {message} corresponde a System.out.println({message}) e está no escopo de conseqüência; O cliente tem pelo menos {idade} anos corresponde a $p : Pessoa(idade >= {idade}) e está no escopo da condição; O cliente é mais novo que {idade} anos corresponde a Pessoa( $nome : nome, idade < {idade})

Criação de uma nova DSL para o Projeto Crédito

Criação de uma nova DSL para o Projeto Crédito

Criação de uma nova DSL para o Projeto Crédito

Criação de uma nova DSL para o Projeto Crédito 9) Colocar a palavra chave expander dentro do arquivo DRL. Ela fará a associação entre a DRL e a DSL;

Criação de uma nova DSL para o Projeto Crédito 10) Se preferir, pode continuar usando a DRL, marcando as linhas com >; rule "Permite Crédito" when O cliente tem pelo menos 18 anos then Decisão: "Crédito Permitido para: " + $p.getNome() end rule "Crédito Negado" O cliente é mais novo que 18 anos >System.out.println("Crédito Negado para: " + $nome);

Criação de uma nova DSL para o Projeto Crédito 11) Colocar no arquivo que contém o método main, o código abaixo: builder.addPackageFromDrl(new InputStreamReader(CreditoExemplo.class.getResourceAsStream("/creditodsl.dslr")), new InputStreamReader(CreditoExemplo.class.getResourceAsStream("/credito.dsl")));

Criação de uma nova DSL para o Projeto Crédito 12) Você pode alterar, também, as palavras chave: Se => when; Então => then