Upcoming SlideShare
Loading in...5




Object-oriented analysis and design(OOAD) and Design Pattern Slides UML Slides. for more slides refer

Object-oriented analysis and design(OOAD) and Design Pattern Slides UML Slides. for more slides refer



Total Views
Views on SlideShare
Embed Views



1 Embed 1 1



Upload Details

Uploaded via as Microsoft PowerPoint

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Interpretor Interpretor Presentation Transcript

  • INTERPRETER The Interpreter pattern defines a grammatical representation for a language and an interpreter to interpret the grammar. Musicians are examples of Interpreters. The pitch of a sound and its duration can be represented in musical notation on a staff. This notation provides the language of music. Musicians playing the music from the score are able to reproduce the original pitch and duration of each sound represented. Object Diagram for Interpreter using Music Example
    • Intent
    • Given a language, define a representation for its grammar along with an interpreter that uses the representation to interpret sentences in the language.
    • Problem
    • A class of problems occurs repeatedly in a well-defined and well-understood domain. If the domain were characterized with a "language", then problems could be easily solved with an interpretation "engine".
    • Problem
    • Solution
    • Illustration
    • Applicability
    • Use the Interpreter pattern when there is a language to interpret, and you can represent statements in the language as abstract syntax trees.
    • The Interpreter pattern works best when
    •  the grammar is simple. For complex grammars, the class hierarchy for the grammar becomes large and unmanageable. Tools such as parser generators
    • are a better alternative in such cases. They can interpret expressions without building abstract syntax trees, which can save space and possibly time.
    • Applicability…….
    • The Interpreter pattern works best when….
    •  Efficiency is not a critical concern.
    • The most efficient interpreters are usually not implemented by interpreting parse trees directly but by first translating them into another form. For example, regular expressions are often trans-formed
    • into state machines. But even then, the translator can be implemented by the Interpreter pattern, so the pattern is still applicable.
    • Structure
    • Collaborations
    •  The client builds (or is given) the sentence as an abstract syntax tree of Non ter-minalExpression
    • and TerminalExpression instances. Then the client initializes the context and invokes the Interpret operation.
    •  Each NonterminalExpmssion node defines Interpret in terms of Interpret on each subexpression. The Interpret operation of each TerminalExpression de-fines the base case in the recursion.
    •  The Interpret operations at each node use the context to store and access the state of the interpreter.
    • Consequences
    • 1 . It’s easy to change and extend the grammar.
    • 2. Implementing the grammar is easy, too.
    • 3. Complex grammars are hard to maintain.
    • 4. Adding new ways to interpret expressions.
    • Model