A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Design Patterns Interpreter

Apresentações semelhantes


Apresentação em tema: "Design Patterns Interpreter"— Transcrição da apresentação:

1 Design Patterns Interpreter
Bernardo Evangelho Miranda

2 O interpreter é um padrão comportamental(está interessado na comunicação entre os objetos).
Seu objetivo é criar uma maneira de incluir elementos de linguagem dentro de programas. Dada uma linguagem, defina uma representação para sua gramática juntamente com um interpretador que usa a representação para interpretar sentenças na linguagem. Mapeie um domínio para uma linguagem, a linguagem para uma gramática, e a gramática para uma hierarquia orientada a objeto. Propósito

3 Uma classe de problemas ocorre repetidamente em um domínio bem conhecido e compreendido. Se o domínio for caracterizado por uma linguagem, então os problemas podem ser facilmente resolvidos utilizando interpretação. Motivação

4 O padrão Interpreter discute: a definição de uma linguagem de domínio (caracterização do problema, por exemplo) como uma gramática de linguagem, representando regras de domínio como sentenças da linguagem, e interpretando estas sentenças para resolver o problema. O padrão usa uma classe para representar cada regra gramatical. E uma vez que as gramáticas são geralmente hierárquicas, orientação a objeto é o melhor caminho. Exemplos do padrão: - Linguagens de pesquisa de banco de dados como SQL; - Linguagens especializadas de computador utilizadas para protocolos de comunicação. Aplicabilidade

5 Estrutura

6 Abstract Expression: classe abstrata que especifica o método interpret().
Terminal Expression e NonTerminalExpression: subclasses concretas que implementam interpret (), recebendo como argumento o estado atual do fluxo de linguagem, e adicionando sua contribuição para a resolução do problema. Terminal são expressões atômicas, enquanto que nãoTerminais são expressões compostas. Contexto: encapsula o estado atual do input e do output Participantes

7 Consequências Facilidade em modificar e extender a gramática
Facilidade em implementar a gramática também Facilidade em adicionar novas maneiras de interpretar expressões Consequências

8 Exemplo Exemplo gramática
-expressão ::= multiplicação | divisão | variáveis -multiplicação ::= expressão ‘*' -divisão ::= expressão ‘/' -variáveis  ::= 'a' | 'b' | 'c’ | … | ‘z’ Exemplos de expressões - a b * - c b a * / - d h * a m / / Exemplo

9 Código

10 Código


Carregar ppt "Design Patterns Interpreter"

Apresentações semelhantes


Anúncios Google