Article Categories
- All Categories
-
Data Structure
-
Networking
-
RDBMS
-
Operating System
-
Java
-
MS Excel
-
iOS
-
HTML
-
CSS
-
Android
-
Python
-
C Programming
-
C++
-
C#
-
MongoDB
-
MySQL
-
Javascript
-
PHP
Computer Programming Articles
Page 10 of 18
How to Fill the Entries in Parsing Table?
A parser is the second phase of compilation. The parser takes as its input tokens generated from the previous phase, i.e., the Lexical Analyzer phase, and groups them in such a way that their syntax can be recognized.For example, Consider I0I0 − E′ → ∙ E E → ∙ E + T E → ∙ T T → ∙ T ∗ F T → ∙ F F → ∙ (E) F → ∙ idFilling of Shifting EntriesApplying Rule (2a) of the algorithm of construction of SLR Parsing Table on a set of a ...
Read MoreConstruct SLR (1) parsing table for the grammar\\n1. E → E + T\\n2. E → T\\n3. T → T * F\\n4. T → F\\n5.F → (E)\\n6.F → id
SolutionSteps to produce SLR Parsing TableGenerate Canonical set of LR (0) itemsCompute FOLLOW as required by Rule (2b) of Parsing Table Algorithm.Computation of FOLLOWBy Rule (1) of FOLLOWFOLLOW(E) = {$} (1)E → E + TApplying Rule (2) FOLLOWi.e., comparing E → E + T with A → α B βE →ΕE+ TA →ΑBΒ∴ A = E, α = ε, B = E, β = +T∵ Since FIRST(β) = FIRST(+T) = {+}which does not contain ε.∴ ...
Read MoreWhat is SLR (1) Parser?
SLR represents "Simple LR Parser". It is very simple and economical to execute. But it fails to make a parsing table for some class of grammars, i.e., why CLR and LALR are used which implements mainly all class or type of grammars. It constructs parsing tables which helps to perform parsing of input strings.SLR(1) − A grammar having an SLR parsing table is said to be SLR (1).Working of SLR ParserSLR Parsing can be done if context-free Grammar will be given. In LR (0), 0 means there is no Look Ahead symbol.The Canonical collection of LR (0) itemsThe LR (0) ...
Read MoreFind the canonical collection of sets of LR (0) items for Grammar -\\nE → E + T\\nE → T\\nT → T * F\\nT → F\\nF → (E)\\nF → id
SolutionStep1− Construct the Augmented Grammar and number the productions(0) E′ → E(1) E → E + T(2) E → T(3) T → T * F(4) T → F(5) F → (E)(6) F → idStep2− Apply closure to the set of items & find gotoSquare Boxes represent the new states or items, and Circle represents the repeating items.So, all rules of I0have been completed by applying goto on I0. Now, in the same manner apply goto on I1, I2 and then goes on.Drawing DFAEach set of the item can be taken as a state of DFA, i.e., I0, I1 … … ...
Read MoreWhat is Algorithm of Predictive Parsing and compute FIRST and FOLLOW for the following Grammar\\nS → L = R\\nS → R\\nL →* R\\nL → id\\nR → L
SolutionComputation of FIRSTS → L = R∵ L does not derive ε. By rule (4b)of FIRST∴ FIRST(S) = {FIRST(L)} (1)S → R∵ R does not derive ε. By rule (4b)of FIRST∴ FIRST(S) = {FIRST(R)} (2)L →* RApplying Rule (3) of FIRSTFIRST(L) = {*} ...
Read MoreWhat is Canonical Collection of LR (0) items in compiler design?
The LR (0) item for Grammar G consists of a production in which symbol dot (.) is inserted at some position in R.H.S of production.For Example − For the production S → ABC, the generated LR (0) items will be −S →∙ ABCS → A ∙ BCS → AB ∙ CS → ABC ∙Production S → ε generates only one item, i.e., S →∙Canonical LR (0) collection helps to construct LR parser called Simple LR (SLR) parser.To create Canonical LR (0) collection for Grammar, 3 things are required −Augmented GrammarClosure Functiongoto FunctionAugmented Grammar − If grammar G has start symbol ...
Read MoreWhat are LR Parsers?
LR Parser is a class of Bottom-Up Parser that is used to parse Context-Free Grammars. LR Parsing is known as LR (K) parsing whereL represents Left to Right Scanning of InputR represents Rightmost DerivationK is the number of input symbols of Look ahead that are used in developing parsing decisions.LR parser is a shift-reduce parser that creates the use of deterministic finite automata, identifying the collection of all applicable prefixes by reading the stack from bottom to top.It decides what handle, if any, is feasible. An achievable prefix of a right sentential form is that prefix that includes a handle, ...
Read MoreWhat is the difference between Backtracking and Non- Backtracking?
Top-Down Parsing with BacktrackingIn Top-Down Parsing with Backtracking, Parser will attempt multiple rules or production to discover the match for input string by backtracking at every step of derivation. So, if the used production does not give the input string as needed, or it does not match with the needed string, then it can undo that shift.Top-Down Parsing without BacktrackingAs backtracking looks more powerful by which we can select different alternatives. But backtracking cannot be applied or implemented so easily in parsing. There are two types of Top-Down Parsing without Backtracking, which are as follows −Recursive Descent ParserPredictive ParserRecursive Descent ...
Read MoreFind FIRST & FOLLOW for the following Grammar.\\nS → A a A | B b B\\nA → b B\\nB → ε
SolutionComputation of FIRSTA → b B∴ FIRST(A) = {b}B → ε∴ FIRST(B) = {ε}S → A a AApplying Rule (4) of FIRSTi.e., Comparing S → A a A with X → Y1Y2Y3∴ FIRST (S) = FIRST (A a A) = FIRST (A) = {b}∴ FIRST(S) = {b}S → B b B∵ FIRST (B)contains ε or B derives ε ∴ Applying Rule (4c)∴ FIRST (S) = FIRST (B to B)∴ FIRST (S) = FIRST (B) − {ε} ∪ FIRST(bB)∴ FIRST (S) = FIRST (B) − {ε} ∪ {b} = {ε} − {ε} ∪ {b} = {b}∴ FIRST (A) = {b}FIRST (B) ...
Read MoreWhat are FIRST and FOLLOW and how they are computed?
FIRST and FOLLOW are two functions associated with grammar that help us fill in the entries of an M-table.FIRST ()− It is a function that gives the set of terminals that begin the strings derived from the production rule.A symbol c is in FIRST (α) if and only if α ⇒ cβ for some sequence β of grammar symbols.A terminal symbol a is in FOLLOW (N) if and only if there is a derivation from the start symbol S of the grammar such that S ⇒ αNαβ, where α and β are a (possible empty) sequence of grammar symbols. In ...
Read More