- Trending Categories
- Data Structure
- Operating System
- MS Excel
- C Programming
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
What is Top-Down Parsing?
In top-down parsing, the parse tree is generated from top to bottom, i.e., from root to leaves & expand till all leaves are generated.
It generates the parse tree containing root as the starting symbol of the Grammar. It starts derivation from the start symbol of Grammar & performs leftmost derivation at each step.
Drawback of Top-Down Parsing
Top-down parsing tries to identify the left-most derivation for an input string ω which is similar to generating a parse tree for the input string ω that starts from the root and produce the nodes in a pre-defined order.
The reason that top-down parsing follow the left-most derivation for an input string ω and not the right-most derivation is that the input string ω is scanned by the parser from left to right, one symbol/token at a time. The left-most derivation generates the leaves of the parse tree in the left to right order, which connect the input scan order.
In the top-down parsing, each terminal symbol produces by multiple production of the grammar (which is predicted) is connected with the input string symbol pointed by the string marker. If the match is successful, the parser can sustain. If the mismatch occurs, then predictions have gone wrong.
At this phase it is essential to reject previous predictions. The prediction which led to the mismatching terminal symbol is rejected and the string marker (pointer) is reset to its previous position when the rejected production was made. This is known as backtracking.
Backtracking was the major drawback of top-down parsing.
Types of Top-Down Parsing
There are two types of top-down parsing which are as follows −
- Top-Down Parsing with Backtracking
In Backtracking, the parser can make repeated scans of input. If the required input string is not achieved by applying one production rule, then another production rule can be applied at each step to get the required string.
- Top-Down Parsing without Backtracking
Once, the production rule is applied, it cannot be undone.
Predictive Parser − Predictive Parser is also known as Non-Recursive Predictive Parsing. A predictive parser is an effective approach of implementing recursivedescent parsing by handling the stack of activation records explicitly. The predictive parser has an input, a stack, a parsing table, and an output. The input includes the string to be parsed, followed by $, the right-end marker.
Recursive Descent Parser − A top-down parser that implements a set of recursive procedures to process the input without backtracking is known as recursive-descent parser, and parsing is known as recursive-descent parsing.
- Related Articles
- What is Top-Down Parsing with Backtracking in compiler design?
- What is Top-Down Parsing Without Backtracking in Compiler Design?
- Difference between Top-Down Parsing and Bottom-Up Parsing
- Difference Between Top-down and Bottom-up Parsing
- What is Bottom-up Parsing?
- What is Operator Precedence Parsing?
- What is Implementation of LR Parsing Tables?
- What is JSON parsing in Rest Assured?
- Integration Testing (Types, Top-Down & Bottom-Up)
- Top-Down Approach Vs. Bottom-Up Approach
- Difference Between Top-down and Bottom-up Approach
- What is Operator Precedence Parsing Algorithm in compiler design?
- Difference Between Top-down and bottom-up Integration Testing
- Difference between Bottom-Up Model and Top-Down Model