Context-Free Grammar to Pushdown Automaton Conversion (CFG to PDA)

  Рет қаралды 129,298

Easy Theory

Easy Theory

Күн бұрын

Пікірлер: 95
@goobles3991
@goobles3991 3 жыл бұрын
You are the best Automata Theory youtube channel. It's a niche title, but you earned it.
@EasyTheory
@EasyTheory 3 жыл бұрын
I'll accept my award and parade soon :) (thanks very much!)
@MUSHIN_888
@MUSHIN_888 2 жыл бұрын
I agree
@prakhartiiwarii
@prakhartiiwarii 3 жыл бұрын
Finally, a short and to-the-point video clearing out the concepts! Thanks ✌🏻
@EasyTheory
@EasyTheory 3 жыл бұрын
You're welcome!
@Shan-gn7mg
@Shan-gn7mg Жыл бұрын
@@EasyTheory yes please do more vids like this, it's more efficient and easy to understand.
@Shan-gn7mg
@Shan-gn7mg Жыл бұрын
@@EasyTheory is that possible to do a same version for pda to cfg?
@sebastianllano1405
@sebastianllano1405 28 күн бұрын
Youre a fantatic teacher. My professor cant teach this in a 2 hour lecture and yet you did it so clearly in 9 minutes and 14 seconds. Why do I go to class?
@forthehomies7043
@forthehomies7043 7 күн бұрын
My professor did a similar example today in class as an introductory lesson to PDA, and I had no clue what she was talking about. I immediately understood this video. Thanks.
@inarazahin5786
@inarazahin5786 4 жыл бұрын
This is the best explanation so far. It is concise and to the point. Thanks for this video.
@EasyTheory
@EasyTheory 4 жыл бұрын
You're very welcome!
@thatguy7802
@thatguy7802 2 жыл бұрын
I have an assignment due in an hour and you may have just saved me a letter grade. Thank you!
@konstantinsazhnev
@konstantinsazhnev Жыл бұрын
Great example and works for every CFG. The only thing I would add is if you have recursion in the same production like S --> abSb | epsilon then we have to make another loop to remove S from the stack within the loop state mentioned in the video.
@alvihabib
@alvihabib 4 жыл бұрын
You are THE MAN. Thanks for this awesome explanation!
@EasyTheory
@EasyTheory 4 жыл бұрын
Alvi Habib thanks very much! Make sure to check out the lecture series I'm currently doing.
@TheWiimaster456
@TheWiimaster456 4 жыл бұрын
FINALLY an English Video thank you so much man this was great
@EasyTheory
@EasyTheory 4 жыл бұрын
Lol thanks!
@techademy9354
@techademy9354 3 жыл бұрын
The man, the myth, and the legend of theory of computation and teaching in general!
@matthewsocoollike
@matthewsocoollike 2 жыл бұрын
wow. thank you so much. I was watching other videos so confused by all the math. your video made it super simple, thank you.
@ashleyarmenta2289
@ashleyarmenta2289 2 жыл бұрын
This is the best PDA explanation video that I've found, thank you!
@Leonidesu
@Leonidesu Жыл бұрын
Hi there, could you remove the pop-ups at the end of the video that goes to another video because it blocks your writing and we could not see anything.
@沼氨
@沼氨 Жыл бұрын
i luv the clear way u describe. THX for saving my final💪
@Dakun
@Dakun 4 жыл бұрын
you saved me, way better explanation than my professor
@EasyTheory
@EasyTheory 4 жыл бұрын
You're welcome!
@zeitgeist18
@zeitgeist18 3 жыл бұрын
So what if instead of B -> epsilon as a production in our CFG, we had B -> a (or B-> b). Could we still use a self loop back to qloop. In other words can we use a self loop to qloop, anytime the RHS of the production has only one symbol? Excellent video btw!
@moatef1886
@moatef1886 2 жыл бұрын
To answer your question a year later, yes you should be able to simply use a self loop back to qloop when the RHS of the production has one symbol.
@wengeance8962
@wengeance8962 3 жыл бұрын
So how do you represent S -> A, would this just be a self loop on qloop being (epsilon, S -> A)?
@EasyTheory
@EasyTheory 3 жыл бұрын
Yes, correct! Or you can have two transitions that "go out of qloop and come back" but that's not necessary.
@ShaidaMuhammad
@ShaidaMuhammad 4 жыл бұрын
Man, It was 6th video in my KZbin search "cfg to pda" which I understood. Thanks man.
@EasyTheory
@EasyTheory 4 жыл бұрын
5 more spots to rise up! ;)
@ShaidaMuhammad
@ShaidaMuhammad 4 жыл бұрын
@@EasyTheory Yeah, The volume was a bit slow, but headphones worked fine for me.
@pk-le5bb
@pk-le5bb 2 жыл бұрын
clear, concise, and comprehensive. you are a godsend, thank you
@DiwashHCR2
@DiwashHCR2 3 жыл бұрын
Shouldn't the transition from the second state to q-loop be (epsilon, $ -> S) .. since the input read is nothing, stack top is a dollar and to push is S?
@EasyTheory
@EasyTheory 3 жыл бұрын
Why would you pop $ there? The whole purpose of putting the $ on the stack at the very start is to ensure we can't go to the final state unless the stack is "empty" (other than $).
@DiwashHCR2
@DiwashHCR2 3 жыл бұрын
@@EasyTheory Thanks ... I thought the tuple was (input symbol, stack top symbol, push/pop)
@EasyTheory
@EasyTheory 3 жыл бұрын
@@DiwashHCR2 This is where divergence in notation comes into play -- my notation (based on the Sipser book) is: (input_symbol, thing_to_pop (or not), thing_to_push (or not)). So the first transition here pushes a $, and then pushes an S (the start variable). So when we first enter q_loop, the stack contents are $S (top of stack on the right).
@EasyTheory
@EasyTheory 3 жыл бұрын
There are some books that do force something to be popped on each transition; some others (maybe yours) does a "peek" at the top but doesn't pop; others can (maybe yours also) forces a push-only or pop-only transition.
@jaeger_404
@jaeger_404 2 жыл бұрын
Thank you!!! This made so much more sense than the other explanations i found
@shyamkannan8594
@shyamkannan8594 2 жыл бұрын
What if the language has no terminals? Then what would go in qloop
@dan-cj1rr
@dan-cj1rr 3 жыл бұрын
Thanks for the video, i have a question, i don't understand when you're in qloop why isn't it S, S ; c instead of epsilon, S ; c would make more sens for me if it was S,S ; c no ? Or does both work. Thanks
@EasyTheory
@EasyTheory 3 жыл бұрын
Because S, S -> c means "read an S" but that is already a problem because the input is over the input alphabet Sigma, not the stack alphabet Gamma.
@globalxoxo
@globalxoxo 2 жыл бұрын
Amazing video Sir Alan
@cadencetennant3303
@cadencetennant3303 2 жыл бұрын
Super helpful! I understand it so much better now.
@rosenv.1953
@rosenv.1953 3 жыл бұрын
How would this look if we accept by final state rather than empty stack?
@albanyrebelion
@albanyrebelion 5 ай бұрын
what is the significance of the read only self loop?
@albanyrebelion
@albanyrebelion 5 ай бұрын
is that the case even if a terminal isnt in the S(start) rule?
@farwahbatool6247
@farwahbatool6247 2 жыл бұрын
You're the man I take refuge in 😢🙌🏻💖
@woodfur00
@woodfur00 Жыл бұрын
Perfectly explained, bless you 🙏
@pauldumitriu9237
@pauldumitriu9237 4 жыл бұрын
Hi there, I was wondering if you have any videos where we can go backwards? Going from a PDA to a cfg
@EasyTheory
@EasyTheory 4 жыл бұрын
Video coming out soon :) the CFL livestream happening in a few weeks will certainly cover this too
@sonjamariemusic
@sonjamariemusic 2 жыл бұрын
sir. you've saved my life
@Patrick-S3
@Patrick-S3 6 ай бұрын
Fantastic video! This helped me so much!!!
@dilaragoral2259
@dilaragoral2259 3 жыл бұрын
Thank you so much, you saved a lot of lives!!
@EasyTheory
@EasyTheory 3 жыл бұрын
You're very welcome!
@melissamarlen1022
@melissamarlen1022 Жыл бұрын
This was such a great video! Thank you so much!
@Jessislegend
@Jessislegend 4 жыл бұрын
Good explanation! Much appreciated
@KhangNguyen-wj5jd
@KhangNguyen-wj5jd 2 жыл бұрын
What is the software you use for drawing? It is beautiful.
@fadyaldhaim4766
@fadyaldhaim4766 2 ай бұрын
did you know what it is?
@rotisosis8285
@rotisosis8285 3 жыл бұрын
Thank you so much now is easy to do my homework.
@cobyjonah7675
@cobyjonah7675 2 жыл бұрын
omg you are literally the best
@amanxo1
@amanxo1 Жыл бұрын
LMFAOOOOOOOOOOOOO thank you man this is literally what i needed
@FernandaRodriguez-xf3lr
@FernandaRodriguez-xf3lr 11 ай бұрын
Thank you!! This is a great video
@ananayarora
@ananayarora 3 жыл бұрын
Thank you thank you thank you so so so much!!!! I subscribed
@EasyTheory
@EasyTheory 3 жыл бұрын
You're very welcome!
@cihadozcan1035
@cihadozcan1035 3 жыл бұрын
Thanks for neat explanation
@alexoxley5058
@alexoxley5058 3 жыл бұрын
Thank you so much, really helped!
@evaeunicemoreno6349
@evaeunicemoreno6349 3 жыл бұрын
Thanks for this! Finally, i got it ✨
@EasyTheory
@EasyTheory 3 жыл бұрын
Great!
@LPNorway
@LPNorway 2 жыл бұрын
Thank you so much man
@justinkuang9423
@justinkuang9423 3 жыл бұрын
Another great vid 👌🏻
@csperi-peri2447
@csperi-peri2447 3 жыл бұрын
Great Video !
@amynguyen3131
@amynguyen3131 3 жыл бұрын
Thank you so much!
@jeffchong3450
@jeffchong3450 2 жыл бұрын
Thank you!!
@zeruihai6051
@zeruihai6051 3 жыл бұрын
Thank you sooooo sooooo much!!!!
@samjudelson
@samjudelson 3 жыл бұрын
Thanks!
@nabeelbaghoor1061
@nabeelbaghoor1061 3 жыл бұрын
Thanks a lot!!!!
@EasyTheory
@EasyTheory 3 жыл бұрын
You're welcome :)
@LasradoRohan
@LasradoRohan 4 жыл бұрын
Loved It
@unpluggability
@unpluggability 3 жыл бұрын
i love you.
@armanyama3186
@armanyama3186 3 жыл бұрын
Why we can't take all these in single loop on qloop state ?
@fatimaalamour5256
@fatimaalamour5256 2 жыл бұрын
In Germany we say Ehrenmann
@princeelliot2836
@princeelliot2836 2 жыл бұрын
Great video, but why not accept with empty stack and simply use two states: (We have to assume that $ is already on the stack, though. Otherwise, this automaton would accept every input.) The first state pushes the start-non-terminal on the stack and the second state loops over itself, while using every single rule from the CFG and pops terminals from the stack, while pushing nothing on the stack. The moment the stack is empty again, simply go back to the first state and push nothing on the stack. Our automaton should accept now, because the stack is empty.
@princeelliot2836
@princeelliot2836 2 жыл бұрын
Or, if we want to have an accepting state, we could add a third state and if we have an empty stack (even without $), then we go from the second state to the third one and accept.
@LucasCliff-r5o
@LucasCliff-r5o 15 күн бұрын
10302 Hayes Avenue
@tekunalogy
@tekunalogy 3 жыл бұрын
❤️
@DonnaLee-d4n
@DonnaLee-d4n Ай бұрын
Reuben Turnpike
@WillianNine-q7d
@WillianNine-q7d Ай бұрын
Isabell Lights
@JoyceVera-k9v
@JoyceVera-k9v Ай бұрын
Powlowski Vista
@DarinTimas-e6u
@DarinTimas-e6u 26 күн бұрын
Dickinson Mountains
@shaysarn2235
@shaysarn2235 5 ай бұрын
8:48
@darklord998
@darklord998 2 жыл бұрын
I used this tutorial for a quiz and my professor marked it completely wrong :(
@beans_potatoes
@beans_potatoes 7 ай бұрын
did he say why?
@HornbyHardy-b2i
@HornbyHardy-b2i Ай бұрын
Osinski Path
@twondai2642
@twondai2642 2 жыл бұрын
what
@fernandogmail1
@fernandogmail1 2 жыл бұрын
thank you 😭😭😭😭
Context-Free Grammar for {0^n 1^n 2^m 3^m} U {0^n 1^m 2^m 3^n}
6:15
Context Free Grammar to Pushdown Automaton Conversion (CFG to PDA)
24:21
Когда отец одевает ребёнка @JaySharon
00:16
История одного вокалиста
Рет қаралды 13 МЛН
Кәсіпқой бокс | Жәнібек Әлімханұлы - Андрей Михайлович
48:57
Зу-зу Күлпаш 2. Интернет мошенник
40:13
ASTANATV Movie
Рет қаралды 625 М.
ДЕНЬ УЧИТЕЛЯ В ШКОЛЕ
01:00
SIDELNIKOVVV
Рет қаралды 4 МЛН
Chomsky Normal Form (CNF) Conversion Example
21:41
Easy Theory
Рет қаралды 46 М.
Pushdown Automaton to Context-Free Grammar Conversion Example
19:22
What is a Pushdown Automaton (PDA)?
12:11
Easy Theory
Рет қаралды 90 М.
Pushdown Automaton (PDA) Example: {0^n 1^n}
11:16
Easy Theory
Рет қаралды 64 М.
Formale Sprachen #36 - Kellerautomaten zu CFG
36:22
NLogSpace
Рет қаралды 19 М.
Context-Free Grammars (CFGs): 5 Easy Examples
19:03
Easy Theory
Рет қаралды 48 М.
Pushdown Automaton to Context-Free Grammar Conversion (PDA to CFG)
22:18
Когда отец одевает ребёнка @JaySharon
00:16
История одного вокалиста
Рет қаралды 13 МЛН