Carregar apresentação
A apresentação está carregando. Por favor, espere
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
Apresentações semelhantes
© 2025 SlidePlayer.com.br Inc.
All rights reserved.