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

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

Design Patterns Interpreter Bernardo Evangelho Miranda.

Apresentações semelhantes


Apresentação em tema: "Design Patterns Interpreter Bernardo Evangelho Miranda."— Transcrição da apresentação:

1 Design Patterns Interpreter Bernardo Evangelho Miranda

2 Propósito 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.

3 Motivação 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.

4 Aplicabilidade 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.

5 Estrutura

6 Participantes 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

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

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 / /

9 Código

10 Código


Carregar ppt "Design Patterns Interpreter Bernardo Evangelho Miranda."

Apresentações semelhantes


Anúncios Google