I am an engg. student and i only study before a day of exam but on that day i was enjoying and only enjoying. then i noticed its 20'clock mid-night. holy molly .....only few hours were left for my exam. so i got fresh and smoked 1 cigarette and get on with my studies. Did not sleep the whole night and watched this video till morning and learned everything. I just wanted to thank you. If it weren't for you, i wouldn't have passed my CD exam. and now i am recommending to my juniors bout your channel and learn from your videos. thank you sir !!!
Exam ke ek hafte pehle yahan aane wale sabhi bhai bandhuon ka swagat hai. Isse achha content kahin nahi milega. Sahi jagah aaye ho. Mann lagakar padhai karo. -Aap ka senior.
sir..u are really my saviour coz..we haven't got our syllabus to this deep in our colleges..if study would be this much effective in every college..we wouldn't have get failed in examz..thanx alot.. I was totally preparing from your lectures..thank u sir for your service...
Sir.....these are really very helpful lectures.....must say u are a very good teacher.... Plz upload some more videos discussing the GATE questions. Thank u!
I am so thankful for these lectures. They're exact upto my university course which btw sucks and so does the faculty. Thankyou so much sir for sharing your knowledge with students who desperately need it ☺
I really wish all the youth to take this kind of Highly talented people who brightened so many of student's lives rather than going behind cinema heroes 🙏
Aao bhai log ek raat pehle shuru karte hain iss bhavya subject ko jo pure semester toh samajh aaya nahin Shayad aaj aa jaye. Give thumbs up to show the feeling of brotherhood.
i like the video, very useful. BUT the one who's filming this is getting on my nerves with constantly playing with the camera and move it right to left and vice versa!!!!!!!!!!!!!
These compiler lectures are awesome!!! I would change a grammar for this lecture though, it is left recursive, A->Abc | b. Given that top down parser cannot handle left recursive grammars, this lecture could be confusing to someone.
Thank you very much for explaining the content .It is of great help. I can't what the professors are saying in the class but i can understand what you are saying very clearly .
I a long long time ago developed a programming lenguage development system. It had a parser programming language not a parser generator. The example expr parsing formulas below are examples: EXPR = TERM "('+':ADD|'-':SUB) TERM !2); TERM = FACTOR $('*':MPY|'/':DIV)FACTOR!2); FACTOR = ( '(' EXPR ')' | ID | NUMBER ) ('^' FACTOR:XPN!2) ; I designed and wrote compilers in the late 1960 and 1070s. What is taught today has completely ignored early compiler development systems that use TDPLs (Top Down Parser Programming Languages). I use the above terminology to explicitly distinguish them from parser generators. They do not limit you to a left or right derivation tree. You build the tree using a symbiotic stack based tree construction language. There are three stacks. The call stack holds the return address to the calling parse function. It may also hold stack frames and arguments for functions having them. Generator language functions for example. Parser functions resemble grammar rules. (They may be considered a type of analytical grammar. There three type of formule: Character class : formula define and name character groups. bin: '0'|'1'; oct: bin|'2'|'3'|'4'|'5'|'6'|'7'; dec: oct|'8'|'9'; hex: dec|'a'|'b'|'c'|'d'|'e'|'f' |'A'|'B'|''|'D'|'E'|'F'; Token .. formula are used to recognize variable tokens. Key words, operator and such are usually recognized using constant strings. Tree construction is accomplished using two working stacks that are I dependent from the call stack. A node object is created and pushed on the node stack using: : :ADD creates an ADD node and pushes it onto the node stack. Trees are constructed using:
Thankyou for great explanation.... Still I have one doubt.. Recursive descent parsing needs backtracking.. but you classified it in Top down parser without backtracking.. could you please clarify this?
Sir ure doing an amazing job but I have a confusion in this lecture video. We know that tdp cannot handle left recursive grammer but you parsed A-Abc/b using it. Kindly help me with this here.
I have a doubt for bottom up parsing why we use right most derivation by using left most derivation also it will come? How that come I couldn't get please help me
hi, Sir, the video is superb, but there's this one doubt at 2:45 that you for TDP there should be no Ambiguous grammar, to do so we must use left recursion but you say there should be no left recursion for TDP, can you please explain this.
Why we will add $ always and why $ is always in the follow of S. One more question if we do not have any symbol after a symbol why we go and track left hand side to calculate follow
sir finite state machines with output are used for interpreters or what? DFA and NFA accept strings that belong to the language so they are basically a graphical representation of parsers but what about melay and moore machines? they produce output
Sir,with due respect at 7:08 u said top down parser employs left most recursion,but doesn't top down parser takes right most recursive production rules,just had a doubt :)
No. TDPs use leftmost derivation, and don't confuse recursion with derivations. If the grammar is constructed properly, you can derive without recursing.
The first grammar you used as an example is left-recursive and is therefore in general not applicable for top-down parsing. I also don't see why grammars should not be ambiguous ...
Wrong. When parsing operators (*, +, ^, & ...), for example, one needs to sort out their different levels of precedence, else one will end up with expected results. And if the semantics of the language has some element of associativity "(2 + 2) + 2" vs "2 + (2 + 2 )", then disambiguating a grammar is necessary.
What is wrong? The fact that the first grammar is left-recursive and therefore not suitable for top down parsers (A->Abc/b)? You surely need to disambiguate the grammar at some point but this in general is an implementation specific thingy (which is one of the weaknesses of CFGs, requiring the concrete implementation to provide the lookahead to disambiguate), unless you use a formalism such as PEGs, isn't it? p.s. I don't see how your example shows the problem of operator precedence? I guess you meant something like "2 + 2 * 2" vs. "(2 + 2) * 2" ...
I was addressing your "I also don't see why grammars should not be ambiguous" statement. I did mention the problem of operator precedence, which is one of the reasons you need to disambiguate, but "(2 + 2) + 2" vs "2 + (2 + 2 )" was for associativity ambiguity. I agree that such ambiguities are CFGs thing, but the examples he used are CFGs.
I am an engg. student and i only study before a day of exam but on that day i was enjoying and only enjoying. then i noticed its 20'clock mid-night. holy molly .....only few hours were left for my exam. so i got fresh and smoked 1 cigarette and get on with my studies. Did not sleep the whole night and watched this video till morning and learned everything. I just wanted to thank you. If it weren't for you, i wouldn't have passed my CD exam. and now i am recommending to my juniors bout your channel and learn from your videos. thank you sir !!!
This is so true with Bangladeshi students as well. Ravindra Sir jee k liye dil se dua aata hai..
Aaqib Haque Hindi bahut accha hai aapka...
Exam ke ek hafte pehle yahan aane wale sabhi bhai bandhuon ka swagat hai. Isse achha content kahin nahi milega. Sahi jagah aaye ho. Mann lagakar padhai karo.
-Aap ka senior.
dil ki baat kardi bhaai aapne... jaane kitne logon ki back bachaai hain iss channel ne
gaar mara jaa raha hain ...inta kaise yaad rakhu...ak bhi job nahi milega aisa karke
Exam se ek ghanta pehele aye to?
@@sirjansingh8355 did you qualify your exam?
Ek shaam pehle bhai😋😋
sir..u are really my saviour coz..we haven't got our syllabus to this deep in our colleges..if study would be this much effective in every college..we wouldn't have get failed in examz..thanx alot..
I was totally preparing from your lectures..thank u sir for your service...
IDK Why my uni pays for lecturers. Just stick this guy on and watch everyone pass
Sir.....these are really very helpful lectures.....must say u are a very good teacher.... Plz upload some more videos discussing the GATE questions. Thank u!
Thank you RUclips, for the 1.5x feature.
You mean 2x feature? :)
+1
Also thanks to him. He is very clear and confident.
@@amitkrishnaa5440 man I feel high on symbols rn 😂😂
Dude, Thanks! You have saved a genius from failing in this exam.
Respect.
seriously?😂
LL(1) Parsers from 09:57
Followed this guy's course hes excellent nailed 87 out of 100 score thanks to him perfect course explained so good
I am so thankful for these lectures. They're exact upto my university course which btw sucks and so does the faculty. Thankyou so much sir for sharing your knowledge with students who desperately need it ☺
I really wish all the youth to take this kind of Highly talented people who brightened so many of student's lives rather than going behind cinema heroes 🙏
I'm here because you're good at teaching compiler construction
I cannot express how grateful I am. THANK YOU
Thanks Ravindrababu Ravula. You just saved me some depression.
anna nu thop anna nevalle na exams anni pass ayna abaaa em chptav anna
okkasari vintae chalu oneday batting lo kuda 80% score cheyochu tqqq anna
u have better concept building than my gateforum lecturer!
tHOSE WhO dislike Ravindra babu's video, they might be youtuber who can not explain like sir does!
if agree, push tHumbs uP!
GOD/SAVIOUR/SOURCE OF HOPE/DEITY OF B.TECH STUDENTS
Aao bhai log
ek raat pehle shuru karte hain
iss bhavya subject ko
jo pure semester toh samajh aaya nahin
Shayad aaj aa jaye.
Give thumbs up to show the feeling of brotherhood.
Sir i have passed so many exams because of you. thanks sir. u have done wonders. great job.
A lot of examples --> a lot of understanding ... thanks Ravula
now i understood my college lecturers are waste.sir you are real talent
i like the video, very useful. BUT the one who's filming this is getting on my nerves with constantly playing with the camera and move it right to left and vice versa!!!!!!!!!!!!!
These compiler lectures are awesome!!! I would change a grammar for this lecture though, it is left recursive, A->Abc | b. Given that top down parser cannot handle left recursive grammars, this lecture could be confusing to someone.
Exactly same confusion
Thank you very much for explaining the content .It is of great help. I can't what the professors are saying in the class but i can understand what you are saying very clearly .
thank you sir for free coaching...I pass cc because of you only.. thank you again.
I a long long time ago developed a programming lenguage development system. It had a parser programming language not a parser generator. The example expr parsing formulas below are examples:
EXPR = TERM "('+':ADD|'-':SUB) TERM !2);
TERM = FACTOR $('*':MPY|'/':DIV)FACTOR!2);
FACTOR = ( '(' EXPR ')' | ID | NUMBER )
('^' FACTOR:XPN!2) ;
I designed and wrote compilers in the late 1960 and 1070s. What is taught today has completely ignored early compiler development systems that use TDPLs (Top Down Parser Programming Languages). I use the above terminology to explicitly distinguish them from parser generators. They do not limit you to a left or right derivation tree. You build the tree using a symbiotic stack based tree construction language. There are three stacks. The call stack holds the return address to the calling parse function. It may also hold stack frames and arguments for functions having them. Generator language functions for example. Parser functions resemble grammar rules. (They may be considered a type of analytical grammar. There three type of formule:
Character class : formula define and name character groups.
bin: '0'|'1';
oct: bin|'2'|'3'|'4'|'5'|'6'|'7';
dec: oct|'8'|'9';
hex: dec|'a'|'b'|'c'|'d'|'e'|'f'
|'A'|'B'|''|'D'|'E'|'F';
Token .. formula are used to recognize variable tokens. Key words, operator and such are usually recognized using constant strings. Tree construction is accomplished using two working stacks that are I dependent from the call stack. A node object is created and pushed on the node stack using:
:
:ADD creates an ADD node and pushes it onto the node stack. Trees are constructed using:
this guru hits gym hard vascularity vissible good job
Tysm... I enjoyed ua lecture... N its really helpful.... N more ua really cute😍
Explosion at 1:23! :O
LMAO
Haha
LMAO
Thanks it was very helpful!!
Too good... Very informative and easily understandable..Thank you 👍
your teaching video about compiler design is osm.....
Sir your explanation is awesome, don't know why we can't have a book with such simple explanation, may be you can write
one :D .
Awesome sir , Big Love big respect from Pakistan .
All your videos may it be of Compiler or Operating System..Its just Awesome..Thanx
your speeking way much nice and easy to understand you are my favourit teacher.................thanks
That is exactly what I was looking for. Thx you man. Several short lections instead of semester course. XD
Thank you for your all videos on compiler and other subjects.
your teaching is super. I can understood easily.
You said that top-down parser can not have left recursion. But the second production (A->Abc) is left recursive. Can you please explain?
Very good lectures, need more lecture
Hello thx for your work;) Why is first(S) = c surely if A -> a | "epsilong"? c would not be the first character in all situations?? (15:00)
i hope i pass this paper in this semester :(
Thank you for teaching this subject so well.
you passed senior??
Explained so well! Thanks a lot brother!
1:23 he says "popping " and it explodes . lol
😂😂😂😂
1:48 clear view of the chart
Thankyou for great explanation.... Still I have one doubt.. Recursive descent parsing needs backtracking.. but you classified it in Top down parser without backtracking.. could you please clarify this?
dilo me exam ki tention le kar ji rahe ho tum , to zinda ho tum
thank you so much sir for such a great teaching..
useful... i like the way of teaching ideast step by step
Life Saving. Thanks alot sir! :)
Dude i hope you could create a cc in english,
because i can't understand some of your words, Anyway good video and so helpful :)
Sir, please provide 1 lecture about type checking of compiler.
please bro suggest me the java tutorial channel in which i can learn completely.....
Sir ure doing an amazing job but I have a confusion in this lecture video. We know that tdp cannot handle left recursive grammer but you parsed A-Abc/b using it. Kindly help me with this here.
3:38 time (video) : A->Abc/b is left recursive is it valid in top down parsing
I have a doubt for bottom up parsing why we use right most derivation by using left most derivation also it will come? How that come I couldn't get please help me
hi, Sir, the video is superb, but there's this one doubt at 2:45 that you for TDP there should be no Ambiguous grammar, to do so we must use left recursion but you say there should be no left recursion for TDP, can you please explain this.
Why we will add $ always and why $ is always in the follow of S. One more question if we do not have any symbol after a symbol why we go and track left hand side to calculate follow
sir finite state machines with output are used for interpreters or what? DFA and NFA accept strings that belong to the language so they are basically a graphical representation of parsers but what about melay and moore machines? they produce output
11:40 better explanation is parsers uses PDA ,and "$" here specifies bottom of stack
in exam paper this type of diagram can be drying he put a full maxs ?????
Thank you, i want to know if python be used to perform
this method
skip first 10 minutes to go directly for LL(1) parsing. :)
Ye bnda sabko pass kraega!
you are just owsome .... great knowledge
Can u please explain the difference between top down approach and bottom up approach
thankyou you explain in simple language
Sir,with due respect at 7:08 u said top down parser employs left most recursion,but doesn't top down parser takes right most recursive production rules,just had a doubt :)
No. TDPs use leftmost derivation, and don't confuse recursion with derivations. If the grammar is constructed properly, you can derive without recursing.
this is very useful got a hope that I'll pass my exam😂 thankyouuuuu
Ur amazing.....helped me a lot...I do love you
very helpful lectures..... thanks for sharing....
Sir , I am having doubt please clear it , its at 9:49 , why RMD in reverse?? its Still LMD in reverse na?? :(
kabhi kabhi lgta hai sir hi bhagwaan hai
You're genius sir
How can you convert this program (a:T; b:F; - (a | b) ^ (!b) ^ (!a)$
) to context free grammar. Appreciate your help.
Nice lectures on compilers
man u are a god thanks so much :D
Great explanation! Thank u so much!!!!!!!!!!
pl share your workout routine also amazing content
recursive descent is with backtracking, it should be recursive predictive parser
Very helpful!! Thank you so much:)
Sir, u are stunning, but ask your camera man to stop fidgeting
hii sir u r teaching is super and thanq
really fantastic video sar
Thanku sir awsm videos Thanku again
awesome lectures
Vedio is very helpfull thanks
next level
Thank You :-)
the first terminal after derivation is called first() .
Just awesome 👏✊👍
Thank u so much sir u r too good....
What happens to the epsilon for the last two problems?
I love u and I love ur teaches Style
i do not understand ... how first of A is C ... If i consider the grammar then..first of A is B... B-> C, C->d ... so should it be C or d ??
jeet sethi Hmmm.. 17:48 mistake... Follow of A would be d...
No it's not wrong ! c is terminal here not a Variable !
C is non-terminal thats why C->d is possible
wow , just wow
The first grammar you used as an example is left-recursive and is therefore in general not applicable for top-down parsing. I also don't see why grammars should not be ambiguous ...
Wrong. When parsing operators (*, +, ^, & ...), for example, one needs to sort out their different levels of precedence, else one will end up with expected results.
And if the semantics of the language has some element of associativity "(2 + 2) + 2" vs "2 + (2 + 2 )", then disambiguating a grammar is necessary.
What is wrong? The fact that the first grammar is left-recursive and therefore not suitable for top down parsers (A->Abc/b)?
You surely need to disambiguate the grammar at some point but this in general is an implementation specific thingy (which is one of the weaknesses of CFGs, requiring the concrete implementation to provide the lookahead to disambiguate), unless you use a formalism such as PEGs, isn't it?
p.s. I don't see how your example shows the problem of operator precedence? I guess you meant something like "2 + 2 * 2" vs. "(2 + 2) * 2" ...
I was addressing your "I also don't see why grammars should not be ambiguous" statement.
I did mention the problem of operator precedence, which is one of the reasons you need to disambiguate, but "(2 + 2) + 2" vs "2 + (2 + 2 )" was for associativity ambiguity.
I agree that such ambiguities are CFGs thing, but the examples he used are CFGs.
very good explanation.. :)
Love the videos. you need a new cameraman though
ty sir...can u explain me pumping lemma for CFL