Patron Interpreter

Introduccion:

Dado un lenguaje, define una representacion de su gramatica junto con un interprete que usa dicha representacion para interpretar las sentencias del lenguaje.

Nombre del Patron:
Interpreter (Interprete).

Clasificacion del Patron:
Patron de Comportamiento.

Intencion:
Definir un Interprete para un lenguaje.

Motivacion:

Existen problemas particulares que pueden expresarse en función de algún Lenguaje.
A veces es conveniente representar un lenguaje como palabras de algun lenguaje sencillo, como por ejemplo, evaluar expresiones booleanas.
El patron Interpreter describe como definir una gramatica, representar palabras del lenguaje y como interpretarlas.

Estructura:





Participantes:

Cliente: Construye el arbol Sintactico Abstracto de expresiones no terminales, e instancias de la clase Expresion Terminal. Luego inicializa el contexto e invoca al Interpretador.

AbstractExpresion: Es la clase Abstracta a travez de la cual el cliente interactua con las expresiones.

TerminalExpresion: La implementacion de la clase Abstracta AbstractExpresion para nodos terminales en la gramatica y el arbol de sintaxis.

NonTerminalExpression: Es otra implementacion de la clase abstracta para nodos no terminales de la gramatica y el arbol de sintaxis. Mantiene una referencia a la siguiente expresion e invoca el metodo interpret en cada uno de sus hijos.

Context: El contenedor de la informacion que se necesita en distintos lugares del interprete. Puede servir como un canal de comunicacion entre distintas instancias de Expression.

No hay comentarios:

Publicar un comentario

Hora Bogotá Colombia