INTERPRETER Main Topics What is an Interpreter Why
- Slides: 20
INTERPRETER Main Topics What is an Interpreter. Why should we learn about them.
Simple Definition Interpreter: A medium through which unrecognized information is changed into a form that can be recognized.
Why Should we learn about Interpreters l Makes Your Life Easier – Amount of work – Amount of programming – Adaptability to new situations
Why Should we learn about Interpreters l Makes Your Life Easier – Amount of work l l If a problem occurs often enough, you might want to express instances of the problem as a simple language. Example: String Matching (Regular Expressions)
Why Should we learn about Interpreters l Makes Your Life – Amount of work l Easier The interpreter pattern describes how to define a grammar for a simple language, how to representences in the language and interpret those sentences
Why Should we learn about Interpreters l Makes Your Life Easier – Amount of programming l l The interpreter pattern uses a simple class to represent each grammar rule. First, some more definitions
More Definitions – Literal Expression l This determines if there is an exact match of two objects ( operator = ) – Alternation Expression Is there an alternate expression that is acceptable (operator | ) l – Repetition Expression l Does this repeat itself (operator * )
More Definitions – Sequence Expression l Determines if both objects are present (operator &)
Class Diagram Every regular expression defined by this grammar is represented by an abstract syntax tree made up of instances of these classes. p. 244
Syntax Tree l This tree represents the regular expression – Raining & (dog | cat)* – Diagram p. 244
Why Should we learn about Interpreters l Makes Your Life Easier – Amount of programming l Works best when – The grammar is simple • (class hierarchy) – Efficiency is not a concern • (space & time management)
Collaboration Diagram Participants: Abstract. Expression, Terminal. Expression, Non. Terminal. Expression, Context, Client. (p. 245)
Pros & Cons of Interpreters ANY GUESSES? ? ?
Pros & Cons of Interpreters l It’s easy to change and extend the grammar l Inheritance – existing expressions can be modified, and new expressions can be defined as variations of old ones l. Implementing l At least that’s what the book says l. Adding l the grammar is ‘easy’ too. new ways to interpret expressions. Flexible - Tokenizers
Pros & Cons of Interpreters l Complex l Grammars are hard to maintain The interpreter pattern defines at least one class for each rule.
Implementation l Creating l the abstract syntax tree The interpreter pattern does not explain how to create an abstract syntax tree. l Sharing terminal symbols with the flyweight pattern l Grammars who’s sentences contain many occurrences of a terminal symbol might benefit from sharing a single copy of that symbol.
Implementation l Creating l the abstract syntax tree You can (but have the option of not) define the Interpret operation in your expression classes. – Sequence. Expression, Literal. Expression… etc.
Known Uses l The interpreter pattern is widely used in compilers implemented with object oriented languages – Example: Small. Talk
Related Patterns – Composite (p. 163): the abstract syntax tree is an instance of the composite pattern – Fly. Weight (p. 193): shows how to share terminal symbols within the abstract syntax tree. – Iterator (p. 257): can be used to traverse the structure. – Visitor (p. 331): can be used to maintain the behavior in each node in the abstract syntax tree in one class
Final Questions or Comments • Sample code • Small. Talk can be found on pages 248 – 251 • C++ can be found on pages 251 - 255
- Pictures
- Dont ask
- Topics why
- Form of will future
- Main idea stated and implied
- Void main int main
- Java interpreter
- Mis interpreter
- Interpreter and compiler difference between
- Pengertian compiler dan interpreter
- C compiler
- National consortium of interpreter education centers
- Disadvantages of interpreter
- Shell command interpreter
- Deuqe
- What is pure and impure interpreter
- Basic cobol fortran
- Compiler assembler and interpreter
- Interpreter based language
- Vxml interpreter
- Dshs interpreter ethics quiz