1 César Estéban Castañeda Luis Andrés AlmanzaPatrón “Interpreter” César Estéban Castañeda Luis Andrés Almanza
2 Propósito del Patrón “Interpreter”Definir la representación de una gramática de un lenguaje, junto con su interprete. (Lenguajes de Programación)
3 UML “Interpreter”
4 Componentes del patrón “Interpreter”AbstractExpression: Declara una interfaz para ejecutar una operación. TerminalExpression: Implementa una operación asociada a un símbolo terminal en la gramática del lenguaje. NonterminalExpression: Implementa una operación para un símbolo no terminal. Esta expresión normalmente hace llamadas recursivas a si misma. Context: Contiene la información global a el interprete. Client: Construye y/o envía una abstracción de la representación del árbol representando un ejemplo de la gramática del lenguaje, este compone de expresiones terminales y no terminales. Ejecuta la operación del interprete.
5 Ejemplo Notación Polaca Inversa
6 Ejemplo I interface Expression {public void interpret(Stack
7 Ejemplo II class TerminalExpression_Plus implements Expression {public void interpret(Stack
8 Ejemplo III class Parser {private ArrayList
9 Ejemplo IV class InterpreterExample {public static void main(String[] args) { String expression = " "; Parser p = new Parser(expression); System.out.println("'" + expression +"' equals " + p.evaluate()); }
10 Ventajas del patrón “Interpreter”Fácil de extender y cambiar la gramática de un lenguaje, aprovechando la herencia. La implementación de gramática nueva es sencilla, las clases son fáciles de escribir. Añadir nuevas forma de interpretar las expresiones es sencillo.
11 Desventajas del patrón “Interpreter”El patrón no explica como crear el árbol sintáctico. Las gramáticas complejas son difíciles de mantener, esto a causa de que la jerarquía de clases se volvería virtualmente inmanejable. La eficiencia del interprete es menor a la de otros métodos; si se necesita velocidad de procesamiento es mejor utilizar otros mecanismos que solución estos problemas.
12 Referencias http://www.dofactory.com/Patterns/PatternInterpreter.asp xerpreter.pdf