Interpreter: diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
Correção no posicionamento das linhas para não ficarem ao redor da imagem.
Adição do cabeçalho Exemplo.
Linha 7: Linha 7:
== Problema ==
== Problema ==
O padrão Interpreter busca em geral resolver o seguinte problema: que uma classe de problemas ocorre repetidamente em um domínio bem definido e bem compreendido. Se o domínio for caracterizado como uma linguagem, então os problemas poderiam ser facilmente resolvidos com uma interpretação da engine.
O padrão Interpreter busca em geral resolver o seguinte problema: que uma classe de problemas ocorre repetidamente em um domínio bem definido e bem compreendido. Se o domínio for caracterizado como uma linguagem, então os problemas poderiam ser facilmente resolvidos com uma interpretação da engine.

== Exemplo ==
O padrão Interpreter define uma representação gramatical de uma linguagem e um intérprete para realizar a interpretação da gramática. Os músicos são exemplos de intérpretes. O tom de um som e sua duração podem ser representados em uma notação musical em conjunto. Esta notação fornece a linguagem da música. Músicos tocando a música da partitura são capazes de reproduzir o tom original e duração de cada som representado.

https://sourcemaking.com/files/v2/content/patterns/Interpreter_example1.svg


== Estrutura ==
== Estrutura ==

Revisão das 03h05min de 2 de outubro de 2016

Definição

Interpreter é um dos padrões de projeto de software, famosos como "Design Patters", muito utilizado para a resolução de problemas quando a modelagem de sistemas ou softwares. Esse padrão esta incluso na categoria de Padrão Comportamental, ou seja, ele busca solucionar problemas de modelagem que tratam o comportamento de classes.

Intenção

Dada uma determinada linguagem, o padrão Interpreter define uma representação para sua gramática juntamente com um interpretador que usa a representação para interpretar sentenças na língua. Ou mapear um domínio para uma língua, a língua para uma gramática e a gramática para um projeto de design hierárquico orientado a objetos.

Problema

O padrão Interpreter busca em geral resolver o seguinte problema: que uma classe de problemas ocorre repetidamente em um domínio bem definido e bem compreendido. Se o domínio for caracterizado como uma linguagem, então os problemas poderiam ser facilmente resolvidos com uma interpretação da engine.

Exemplo

O padrão Interpreter define uma representação gramatical de uma linguagem e um intérprete para realizar a interpretação da gramática. Os músicos são exemplos de intérpretes. O tom de um som e sua duração podem ser representados em uma notação musical em conjunto. Esta notação fornece a linguagem da música. Músicos tocando a música da partitura são capazes de reproduzir o tom original e duração de cada som representado.

https://sourcemaking.com/files/v2/content/patterns/Interpreter_example1.svg

Estrutura

O padrão Interpreter sugere modelar o domínio com uma gramática recursiva. Cada regra na gramática é tanto um 'composite' (uma regra que referencia outras regras) ou um 'terminal' (uma folha/nó numa estrutura de árvore). O Interpreter baseia-se na travessia recursiva do padrão Composite para interpretar as 'sentenças' que ele deve processar.

Diagrama representando o uso do padrão Interpreter.
Uso do padrão Interpreter.

Referências

https://sourcemaking.com/design_patterns/interpreter[1]

Ícone de esboço Este artigo sobre programação de computadores é um esboço. Você pode ajudar a Wikipédia expandindo-o.


  1. «Design Patterns and Refactoring». sourcemaking.com. Consultado em 29 de setembro de 2016