The Gateway to Computer Science Excellence
First time here? Checkout the FAQ!
x
+23 votes
3.7k views

Consider the grammar shown below. 

$S \rightarrow C \ C$

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

This grammar is

  1. LL(1)
  2. SLR(1) but not LL(1)
  3. LALR(1) but not SLR(1)
  4. LR(I) but not LALR(1)
asked in Compiler Design by Veteran (59.5k points)
edited by | 3.7k views

2 Answers

+32 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.

answered by Boss (31.4k points)
edited by
+1

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

0
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
–2
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!!!!!!!!!!?
+1

Every LL(1) grammar is LALR(1). Why?

A ε-free LL(1) grammar is also a SLR(1) grammar.

0

LALR(1) generate  DCFL and LL(1) generate  regular language.

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

+9
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.
0
@pyuri  STRONG  answer LL(1)
+1

@Arjun sir, I know that $LR(1)=LR(k)=DCFL\; \;(k\geq0)$.
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 ?

0

You can read the discussion here. 

http://www.verycomputer.com/101_1d28d7be0d929e8a_2.htm

+1
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 :)
+2

@Arjun sir, I asked this question here and got an awesome reply :)
He also proved this statement.

0
@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.
0

@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). 
 

0
yes it is!
0
why?
0
An ϵϵ free LL(1) grammar is also SLR(1) and hence LALR(1) and LR(1) too.

Is this true Arjun sir?
0

wikki says-

 A ε-free LL(1) grammar is also a SLR(1) grammar. A LL(1) grammar with symbols that have both empty and non-empty derivations is also a LALR(1) grammar. A LL(1) grammar with symbols that have only the empty derivation may or may not be LALR(1).[5]

0
So what is the confusing part ?
+1

yes every LL(1) grammar in not LALR(1).

0
Still what is wrong with the given statement?
0 votes

Answer is A 

answered by (393 points)
Answer:

Related questions



Quick search syntax
tags tag:apple
author user:martin
title title:apple
content content:apple
exclude -tag:apple
force match +apple
views views:100
score score:10
answers answers:2
is accepted isaccepted:true
is closed isclosed:true

38,000 questions
45,497 answers
131,581 comments
48,634 users