Interpreter: diferenças entre revisões

Origem: Wikipédia, a enciclopédia livre.
Conteúdo apagado Conteúdo adicionado
m Página marcada como sem notas, usando FastButtons
Fepitt (discussão | contribs)
Desfeita a edição 46857714 de Contreiras45 e adicionado as fontes
Linha 17: Linha 17:


[[Ficheiro:Interpreter.png|miniaturadaimagem|331x331px|Representação da descrição acima.|nenhum]]
[[Ficheiro:Interpreter.png|miniaturadaimagem|331x331px|Representação da descrição acima.|nenhum]]

== Casos de uso ==
* Formato das consultas em banco de dados especializados como em [[SQL]].
* Formato de mensagens usados pelos protocolos de comunicação.
* Tradução/conversão de linguagens ou símbolos para outra linguagem como números romanos para números decimais.
* Uso em expressões regulares ou XML.
* Uso de interpretação de formato em datas como DD-MM-AAAA ou MM-DD-AAAA.

== Consequências ==
* Baixa freqüência de uso.
* Fácil extensão ou alteração da gramática.
* Implementar uma regra gramatical é fácil.
* É possível adicionar várias vias de interpretação.


== Referência ==
== Referência ==
https://sourcemaking.com/design_patterns/interpreter<ref>{{Citar web|url=https://sourcemaking.com/design_patterns/interpreter|titulo=Design Patterns and Refactoring|acessodata=2016-09-29|obra=sourcemaking.com}}</ref>{{Esboço-prog}}
https://sourcemaking.com/design_patterns/interpreter<ref>{{Citar web|url=https://sourcemaking.com/design_patterns/interpreter|titulo=Design Patterns and Refactoring|acessodata=2016-09-29|obra=sourcemaking.com}}</ref>
http://www.dofactory.com/net/interpreter-design-pattern<ref>{{Citar web|url=http://www.dofactory.com/net/interpreter-design-pattern|titulo=Interpreter .NET Design Pattern in C# and VB - dofactory.com|acessodata=2016-10-02|obra=dofactory.com}}</ref>
http://alumni.media.mit.edu/~tpminka/patterns/Interpreter.html<ref>{{Citar web|url=http://alumni.media.mit.edu/~tpminka/patterns/Interpreter.html|titulo=(Tree-Structured) Interpreter Pattern|acessodata=2016-10-02|obra=[[MIT]]}}</ref>
Design Patterns: Elements of Reusable Object-Oriented Software<ref>{{Citar web|url=https://en.wikipedia.org/wiki/Design_Patterns|titulo=Design Patterns: Elements of Reusable Object-Oriented Software.|obra=Erich Gamma; Richard Helm; Ralph Johnson; John Vlissides.}}</ref>


{{Esboço-prog}}


{{Padrões de projeto}}
{{Padrões de projeto}}

Revisão das 05h46min 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.

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.

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.

Ficheiro:Interpreter.png
Representação da descrição acima.

Casos de uso

  • Formato das consultas em banco de dados especializados como em SQL.
  • Formato de mensagens usados pelos protocolos de comunicação.
  • Tradução/conversão de linguagens ou símbolos para outra linguagem como números romanos para números decimais.
  • Uso em expressões regulares ou XML.
  • Uso de interpretação de formato em datas como DD-MM-AAAA ou MM-DD-AAAA.

Consequências

  • Baixa freqüência de uso.
  • Fácil extensão ou alteração da gramática.
  • Implementar uma regra gramatical é fácil.
  • É possível adicionar várias vias de interpretação.

Referência

https://sourcemaking.com/design_patterns/interpreter[1] http://www.dofactory.com/net/interpreter-design-pattern[2] http://alumni.media.mit.edu/~tpminka/patterns/Interpreter.html[3] Design Patterns: Elements of Reusable Object-Oriented Software[4]


Í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 
  2. «Interpreter .NET Design Pattern in C# and VB - dofactory.com». dofactory.com. Consultado em 2 de outubro de 2016 
  3. «(Tree-Structured) Interpreter Pattern». MIT. Consultado em 2 de outubro de 2016 
  4. «Design Patterns: Elements of Reusable Object-Oriented Software.». Erich Gamma; Richard Helm; Ralph Johnson; John Vlissides.