Explain why Reverse Polish notation is sometimes used instead of infix notation.
Explain how a stack could be used in the process of evaluating an expression in Reverse Polish notation.
What is the syntax of a language?
The set of rules that define a valid statement.
What is backus-naur form a type of?
It’s a type of meta-language
Why do we use meta-languages instead of just regular expressions?
What does : := mean in backus-naur form?
it means “is defined by”
What is the notation for a statement in backus-naur form?
LHS : := RHS
Give the names of each of the components in the following backus-naur form statement:
: := 0|1|2|3|4|5|6|7|8|9
: := 0|1|2|3|4|5|6|7|8|9
is a meta component / syntactic variable
: := and | are meta symbols
What is each individual rule called in backus-naur form?
They are called a production
Give an example of using recursion in backus-naur form?
: := |
What is parsing and how is it achieved?
- Done by replacing meta variables with more comprehensible meta variables at each stage.
What is a syntax diagram?
What does an oval shape mean in a syntax diagram?
This is a terminal element (so it cannot be broken further broken down)
What does an rectangle shape mean in a syntax diagram?
This is a non-terminal element which will be defined in another syntax diagram
What does an arrow around the rectangle shape mean in a syntax diagram?
This is a non-terminal element that may be used more than once
What is the other name for reverse polish notation?
Postfix notation
What is Reverse polish notation?
It is a method of writing arithmetic expressions
What are the advantages of using Reverse polish notation?
- It produces expression in a form suitable for evaluation using a stack
What is the normal/human way arithmetic expressions are written?
Arithmetic expressions are usually written in infix notation
What is the order of precedence in Reverse Polish Notation?
= ( \+ - ) */ ^ - (unary minus, as in -3 + 2)
How do we know that an expression is in infix notation?
Because the operator is written in between operands (numbers)
How do we know that an expression is in postfix notation?
Because the operator is written after the operands (numbers)
What are the steps to translate from postfix to infix?
What type of expression will traversing an in-order binary tree give?
It will give an algebraic expression in infix format