Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS 31003: Compilers  Difference between SLR and LR(1)  Construction of LR(1) parsing table  LALR parser Bandi Sumanth 11CS30006 Date : 9/10/2013.

Similar presentations


Presentation on theme: "CS 31003: Compilers  Difference between SLR and LR(1)  Construction of LR(1) parsing table  LALR parser Bandi Sumanth 11CS30006 Date : 9/10/2013."— Presentation transcript:

1 CS 31003: Compilers  Difference between SLR and LR(1)  Construction of LR(1) parsing table  LALR parser Bandi Sumanth 11CS30006 Date : 9/10/2013

2 Differences between SLR and LR(1) ●

3 SLR, Non SLR and LR(1) grammar ● SLR grammar ● A grammar is said to be an SLR grammar if the SLR parsing table for the grammar has no conflicting entries

4 SLR, Non SLR and LR(1) grammar ● A → B +. C A → B. + C A → B. + SiSi SjSj

5 SLR, Non SLR and LR(1) grammar ● LR(1) grammar  If the current state is S i and + is the next token, a shift is made leading to the state Sj  Reduction cannot be made because the lookahead symbol * and the next token + does not match A → B +. C A → B. + C, = A → B., * + SiSi SjSj

6 ● Construction of LR(1) parsing table

7 Constructing LR(1) parsing table ● Consider the following augmented grammar Ś → S S → C C C → c C | d

8 LR(1) sets of items

9 LR(1) parsing table for the grammar

10 LR(1) vs SLR parser ● LR(1) parser is better than SLR parser because LR(1) accepts more languages than SLR ● SLR(1) is weak because it has no lookahead information ● But the cost is LR(1) has more states than SLR and thus it consumes more space ● LR(1) is impractical because its lookahead information makes the automaton too big

11 Can we retain the LR(1) automaton's lookahead information without all its states?

12 Review of LR(1) ● Each state in an LR(1) automaton is a combination of an LR(0) state and lookahead information. ● Two LR(1) items have the same core if they are identical except for lookahead.

13 A Surprisingly Powerful Idea ● In an LR(1) automaton, we have multiple states with the same core but different Lookahead ● What if we merge all these states together?  This is called LALR parser Lookahead LR parser

14

15

16

17

18

19

20

21

22

23

24

25

26

27 Advantages of LALR(1) ● Maintains lookahead information ● Keeps automaton small ● Resulting automaton has same size as LR(0) automaton

28 The End


Download ppt "CS 31003: Compilers  Difference between SLR and LR(1)  Construction of LR(1) parsing table  LALR parser Bandi Sumanth 11CS30006 Date : 9/10/2013."

Similar presentations


Ads by Google