0% found this document useful (0 votes)
42 views

Assignment No 3

The document discusses top-down and bottom-up parsing. Top-down parsing starts from the start symbol and tries to transform it using production rules, while bottom-up parsing starts from the leaf nodes and works upwards. Bottom-up parsing uses shift-reduce parsing which involves shifting input symbols onto a stack and reducing symbols based on grammar rules. LR parsers are efficient bottom-up parsers that use left-to-right scanning and rightmost derivations.

Uploaded by

amitshrew
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
42 views

Assignment No 3

The document discusses top-down and bottom-up parsing. Top-down parsing starts from the start symbol and tries to transform it using production rules, while bottom-up parsing starts from the leaf nodes and works upwards. Bottom-up parsing uses shift-reduce parsing which involves shifting input symbols onto a stack and reducing symbols based on grammar rules. LR parsers are efficient bottom-up parsers that use left-to-right scanning and rightmost derivations.

Uploaded by

amitshrew
Copyright
© © All Rights Reserved
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 3

Assignment no 3

Explain in brief Top-down parsing & bottom up parsing

Parser: A Parser for a Grammar is a program which takes in the Language string as its input and
produces either a corresponding Parse tree or an Error. Syntax analyzers follow production rules
defined by means of context-free grammar. The way the production rules are implemented
(derivation) divides parsing into two types: top-down parsing and bottom-up parsing.

Top-down Parsing
When the parser starts constructing the parse tree from the start symbol and then tries to
transform the start symbol to the input, it is called top-down parsing.

 Recursive descent parsing: It is a common form of top-down parsing. It is called


recursive as it uses recursive procedures to process the input. Recursive descent parsing
suffers from backtracking.

 Backtracking: It means, if one derivation of a production fails, the syntax analyzer


restarts the process using different rules of same production. This technique may process
the input string more than once to determine the right production.

Bottom-up Parsing
Bottom-up parsing starts from the leaf nodes of a tree and works in upward direction till it
reaches the root node. Here, we start from a sentence and then apply production rules in reverse
manner in order to reach the start symbol. The image given below depicts the bottom-up parsers
available.

Shift-Reduce Parsing
Shift-reduce parsing uses two unique steps for bottom-up parsing. These steps are
known as shift-step and reduce-step.

 Shift step: The shift step refers to the advancement of the input pointer to
the next input symbol, which is called the shifted symbol. This symbol is
pushed onto the stack. The shifted symbol is treated as a single node of the
parse tree.

 Reduce step : When the parser finds a complete grammar rule (RHS) and
replaces it to (LHS), it is known as reduce-step. This occurs when the top of
the stack contains a handle. To reduce, a POP function is performed on the
stack which pops off the handle and replaces it with LHS non-terminal
symbol.
LR Parser
The LR parser is a non-recursive, shift-reduce, bottom-up parser. It uses a wide
class of context-free grammar which makes it the most efficient syntax analysis
technique. LR parsers are also known as LR(k) parsers, where L stands for left-to-
right scanning of the input stream; R stands for the construction of right-most
derivation in reverse, and k denotes the number of lookahead symbols to make
decisions.

There are three widely used algorithms available for constructing an LR parser:

 SLR(1) – Simple LR Parser:


o Works on smallest class of grammar
o Few number of states, hence very small table
o Simple and fast construction
 LR(1) – LR Parser:
o Works on complete set of LR(1) Grammar
o Generates large table and large number of states
o Slow construction
 LALR(1) – Look-Ahead LR Parser:
o Works on intermediate size of grammar
o Number of states are same as in SLR(1)

You might also like