The Gateway to Computer Science Excellence

First time here? Checkout the FAQ!

x

+22 votes

Consider the grammar shown below.

$S \rightarrow C \ C$

$C \rightarrow c \ C \ | \ d$

This grammar is

- LL(1)
- SLR(1) but not LL(1)
- LALR(1) but not SLR(1)
- LR(I) but not LALR(1)

+30 votes

Best answer

ans is **A**

$First(S)=First(C)=\{c,d\}$

there are no multiple in single row of parsing table hence grammar is LL1

note : if we have $A \rightarrow B/C$ for grammar to be LL(1) first(B) intersection First(C) should be null otherwise grammar is not LL1.If First(B) contains $\epsilon$ then Follow(A) intersection First(C) should be null. Using this we can say grammar is LL(1) or not without constructing parsing table.

An $\epsilon$ free LL(1) grammar is also SLR(1) and hence LALR(1) and LR(1) too.

ok it is LL(1)

But how can u say it is not LR(1) or LALR(1)?

means it can be satisfied by some other language too. plz explain

You need to check it for slr(1) also. If it's going to be slr(1) then it will be LALR(1) and CLR(1) also.

PS: if you check given grammar is LR(0) also

PS: if you check given grammar is LR(0) also

Grammar is LL(1) is correct.. Every LL(1) grammar is LALR(1) so it is LALR also. but when it is not SLR(1) as it contain S-R conflict... so ans should be c!!!!!!!!!!?

Regular Language is subset of DCFL so If grammar is LL(1), it should be LALR(1)!

That's wrong except the conclusion. If a grammar is LL(1) and not containing $\epsilon$, then it is SLR(1) and so LALR(1) and LR(1).

LL(1) generate a superset of regular and subset of DCFL. LL(k) strictly generate a subset than LL(k+1) for k >=0.

SLR(1) generate DCFL. LALR(1) and LR(1) also generate DCFL. LR(k) generate the same language as LR(k+1) for k > 0. LR(0) generate the DCFL with prefix property (DPDA with empty stack).

For parser we tell power not in terms of the language their grammar can generate, but the grammars they can parse. SLR(1) < LALR(1) < LR(1), because they can parse more and more grammars in that order though all those grammars can generate the same set- DCFL. i.e., for any LR(1) grammar there is an equivalent SLR(1) grammar which can be parsed by a SLR(1) parser.

LL(1) generate a superset of regular and subset of DCFL. LL(k) strictly generate a subset than LL(k+1) for k >=0.

SLR(1) generate DCFL. LALR(1) and LR(1) also generate DCFL. LR(k) generate the same language as LR(k+1) for k > 0. LR(0) generate the DCFL with prefix property (DPDA with empty stack).

For parser we tell power not in terms of the language their grammar can generate, but the grammars they can parse. SLR(1) < LALR(1) < LR(1), because they can parse more and more grammars in that order though all those grammars can generate the same set- DCFL. i.e., for any LR(1) grammar there is an equivalent SLR(1) grammar which can be parsed by a SLR(1) parser.

I mean: For every k≥1, "a language can be generated by an LR(k) grammar if and only if it is deterministic [and context-free], if and only if it can be generated by an LR(1) grammar.

and wiki says this too.

But your last line of comment is saying,

"for any LR(1) grammar there is an equivalent SLR(1) grammar which can be parsed by a SLR(1) parser." i.e. $LR(1)=LR(k)=SLR=DCFL$. Can i get any refrence for it ?

Thank you sir for link. It makes a statement, that is

"every DCFL has an LR(1), an LALR(1) and even an SLR(1) grammar", I am not sure how much it is true, as this is also "discussion" not a source to be trusted. I will try if i find any better source.

Thank you sir :)

"every DCFL has an LR(1), an LALR(1) and even an SLR(1) grammar", I am not sure how much it is true, as this is also "discussion" not a source to be trusted. I will try if i find any better source.

Thank you sir :)

@Arjun sir, I asked this question here and got an awesome reply :)

He also proved this statement.

@Sachin Mittal 1

I have a small doubt ::

Statement 1 : For every DCFL there exits a LR(0) or a LR(1) grammer.

Statement 2 : For every DCFL there exits a LR(1) grammer.

Which is true??

According to me first one.But the discussion and other links, points that second one is true.

I am confused a bit.Can you provide some reference on this.

I have a small doubt ::

Statement 1 : For every DCFL there exits a LR(0) or a LR(1) grammer.

Statement 2 : For every DCFL there exits a LR(1) grammer.

Which is true??

According to me first one.But the discussion and other links, points that second one is true.

I am confused a bit.Can you provide some reference on this.

@Arjun sir:-

IS the following statement true?

If a grammar is LL(1) and not containing ϵϵ, then it is SLR(1) and so LALR(1) and LR(1).

- All categories
- General Aptitude 1.2k
- Engineering Mathematics 4.7k
- Digital Logic 1.9k
- Programming & DS 3.5k
- Algorithms 3k
- Theory of Computation 3.7k
- Compiler Design 1.5k
- Databases 2.8k
- CO & Architecture 2.5k
- Computer Networks 2.9k
- Non GATE 837
- Others 1.2k
- Admissions 284
- Exam Queries 397
- Tier 1 Placement Questions 17
- Job Queries 51
- Projects 7

33,705 questions

40,253 answers

114,345 comments

38,862 users