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
-
Economics & Finance
Programming Languages Articles
Page 13 of 18
Construct the SLR Parsing table for the following grammar. Also, Parse the input string a * b + a.
Description − Consider the GrammarE → E + T|TT → TF|FF → F*|a|b.SolutionStep1 − Construct the augmented grammar and number the productions.(0) E′ → E(1) E → E + T(2) E → T(3) T → TF(4) T → F(5) F → F ∗(6) F → a(7) F → b.Step2 − Find closure & goto Functions to construct LR (0) items.Box represents the New states, and the circle represents the Repeating State.Computation of FOLLOWWe can find outFOLLOW(E) = {+, $}FOLLOW(T) = {+, a, b, $}FOLLOW(F) = {+, *, a, b, $}Parsing for Input String a * b + a −Stack ...
Read MoreConstruct SLR (1) parsing table for the following grammarnS → x A y |x B y |x A znA → q s | qnB → q
SolutionStep1 − Construct Augmented Grammar(0) S′ → S(1) S → x A y(2) S → x B y(3) A → q S(4) A → q(5) B → qStep2 − Find Closure & goto functions to construct LR (0) items. Here Boxes represent New States and Circles represent the repeating state.Step3 − Computation of FOLLOWS → x A yFOLLOW(S) = {$} (1)Applying Rules (2a) of FOLLOW.Comparing S → x a y with A → ...
Read MoreShow that every SLR (1) is unambiguous, but some unambiguous grammars are not SLR (1). Check this for the following productions.nS → L = RnS → RnL →* RnL → idnR → L
SolutionStep1 − First of all, convert it into augmented grammar G′ and number the productions(0) S′ → S(1) S → L = R(2) S → R(3) L →∗ R(4) L → id(5) R → LStep2 − Find closure and goto function to construct LR (0) items.In the following set of LR (0) items, Boxes represents the new states and circle represents Repeating statesStep3− Computation of FOLLOW− Applying Rule (1) of FOLLOW, we getFOLLOW(S) = $ (1)S ...
Read MoreWhat is the difference between SLR, CLR, and LALR Parser in compiler design?
SLR ParserSLR represents "Simple LR Parser". It is very easy and cost-effective to execute. The SLR parsing action and goto function from the deterministic finite automata that recognizes viable prefixes. It will not make specificially defined parsing action tables for all grammars but does succeed on several grammars for programming languages. Given a grammar G. It augment G to make G’, and from G’ it can construct C, the canonical collection of a set of items for G’. It can construct ACTION the parsing action function, and GOTO, the goto function, from C using the following simple LR Parsing table ...
Read MoreHow 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 grammarn1. E → E + Tn2. E → Tn3. T → T * Fn4. T → Fn5.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 + TnE → TnT → T * FnT → FnF → (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 GrammarnS → L = RnS → RnL →* RnL → idnR → 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 More