This is by far the most underrated computer science channel on RUclips, it's just amazingly clear and well done. Thank you so much to the author for contributing to make the internet such a great place!
I am having trouble understanding the BNF definition of characters. First appearing in the video at 7:01. It looks recursive but I don't see a base case where the recursion can end. Should the definition be ::= | or is there something I am not understanding? Thanks and thanks for the video, it is great!
I have come across explanations of Polish notation in which all of the operators are written together at the start, before any of the operands (or reverse Polish in which they all appear at the end). This is fine for relatively simple expressions - Reverse Polish expressions lend themselves to evaluation by means of a stack data structure (nice article here: stevenpcurtis.medium.com/evaluate-reverse-polish-notation-using-a-stack-7c618c9f80c0). When an expression gets very complicated, there is some wisdom in breaking things up a little. (Needless to say, people have come up with all sorts of variations on a theme.) Remember, the purpose of Polish and reverse Polish is to remove the need for parentheses in an expression. :)KD
@@ComputerScienceLessons The stack evaluation was why I asked the question in the first place but I guess your second point makes things clearer. Thanks for the reply!
Why do we decompose "number" to "digits" (and string to characters)? Isn't it the lexer's responsibility? And just use NUMBER / STRING tokens on syntax analysis stage.
Ive only ever built an assembler. Never tried to build a compiler, but its actually quite similar to my approach to the assembler with a few more complexities.
@@ComputerScienceLessons I was wondering, when we study compilers, they are separeted in lexical, sintactical and semantica. wonder why here the semantic part is nos aboarded as a different part.
@@ComputerScienceLessons Oh yes the company I am working at is/was using FoxPro so believe me I am used to fucked and stupid syntax... Well we are transitioning to C#. I think I would dump my job and become a politician of I had to write VB or FoxPro. They are utterly unintuitive, stupid and have no real place in this world. Only C like languages and xpt shit like Python should exist
I mean VB just like FoxPro doesn't have anything going for it, There are languages that are better for whatever you want for the task, xpt compatibility? Python, Speed? C++, Web and Windows application? C# with .Net Core WPF. Change my mind
This is an argument I have had with many people. All of my programming videos are written in VB.NET. I can do anything with VB.NET that can be done with Java, C, C++, C# and Python. Most importantly, from my teacher perspective, VB is the best way to learn programming. A lot of schools start with Python, which I believe is a mistake. Young people get hooked on programming very quickly when they know how to make things appear and disappear on the screen. VB makes this easy. The GUI building facilities for Python are woeful. Python is great for writing your own utility scripts , or server side code (if you are already a programmer), but you can't put a simple message on the screen without adding lots of code that novices find confusing. Ironically, when it comes to OOP concepts, Python lacks the ability to encapsulate code. This leads to a lot of confusion with my advanced students. (OK, I'm Python bashing now, but let's face it, Python was named after a very silly comedy sketch show). I do quite like C# but the Java style syntax catches beginners out. One final thought, most of the pseudocode that my students see on their exam papers looks just like VB. You asked for it!
As a developer the downsides greatly out weight the ups of VB compared to C# as I think I have shown quite clearly, while mostly keeping clear of my personal preferences. Sorry for such a long text)
This is by far the most underrated computer science channel on RUclips, it's just amazingly clear and well done. Thank you so much to the author for contributing to make the internet such a great place!
Very glad I found this gem channel among pile of garbage on RUclips. Thank you very much. Appreciate your work
This is top-notch teaching. Thank you for your hard work.
Thank you - you are most welcome :)KD
Finally someone with a proper accent that has a great content!!!!!
Yep, hard to find these days.
Thanks for producing such great material! I'm in uni and this will definitely help me pass my course.
Thanks for the lovely comment. :) KD
This video was extremely helpful. The video was very clear, detailed, and easy to follow!! Many many thanks!!!!
This has been a really fascinating lecture! I learned a lot about compilers.
Music to my ears. :)KD
Very well explained, I am looking forward to watching more of your videos.
Awesome explanation!! At last starting to understand syntax analyzer . Thank you
Fantastic. Thanks for commenting :)KD
I am having trouble understanding the BNF definition of characters. First appearing in the video at 7:01. It looks recursive but I don't see a base case where the recursion can end. Should the definition be ::= | or is there something I am not understanding? Thanks and thanks for the video, it is great!
Very clear explanation , thank you very much
You're very welcome :)KD
an error in 19:52 graph?
'a' might be supposed to be connected by '*' , not by '+' twice
absolutely great explanation. very interesting
Thanks a million.
Amazing explanation of this topic
Thank you :)KD
I love your simple amazing explanation ❤️💙💜💜💜
Thank you :)KD
Hey, isn't the prefix/polish notation supposed to be *+abc? Someone please correct me if I'm wrong.
I have come across explanations of Polish notation in which all of the operators are written together at the start, before any of the operands (or reverse Polish in which they all appear at the end). This is fine for relatively simple expressions - Reverse Polish expressions lend themselves to evaluation by means of a stack data structure (nice article here: stevenpcurtis.medium.com/evaluate-reverse-polish-notation-using-a-stack-7c618c9f80c0). When an expression gets very complicated, there is some wisdom in breaking things up a little. (Needless to say, people have come up with all sorts of variations on a theme.) Remember, the purpose of Polish and reverse Polish is to remove the need for parentheses in an expression. :)KD
@@ComputerScienceLessons The stack evaluation was why I asked the question in the first place but I guess your second point makes things clearer.
Thanks for the reply!
Why do we decompose "number" to "digits" (and string to characters)? Isn't it the lexer's responsibility? And just use NUMBER / STRING tokens on syntax analysis stage.
Ive only ever built an assembler. Never tried to build a compiler, but its actually quite similar to my approach to the assembler with a few more complexities.
thank you very much for this clear explanation!
You are most welcome :)KD
Thank you. It helps so much.
You're very welcome :)KD
keep up the good work cheers
Thank you :)KD
12:06 Semantic
??? KD:)
@@ComputerScienceLessons I was wondering, when we study compilers, they are separeted in lexical, sintactical and semantica. wonder why here the semantic part is nos aboarded as a different part.
Why can't you use postfix notation on if statements or for loops?
Thanks for the vid
is this needed to be known in this depth for a levels
Not for the OCR course. An overview of each stage is enough. Make sure you are familiar with linking and loading too.
@@ComputerScienceLessons thank you i appreciate it
Small error: '=' is no relation operator afaik but '==' is
It depends on the language. In Visual Basic '=' is used for assignment and for testing. Spot the VB programmer!
@@ComputerScienceLessons Oh yes the company I am working at is/was using FoxPro so believe me I am used to fucked and stupid syntax... Well we are transitioning to C#. I think I would dump my job and become a politician of I had to write VB or FoxPro. They are utterly unintuitive, stupid and have no real place in this world. Only C like languages and xpt shit like Python should exist
I mean VB just like FoxPro doesn't have anything going for it, There are languages that are better for whatever you want for the task, xpt compatibility? Python, Speed? C++, Web and Windows application? C# with .Net Core WPF. Change my mind
This is an argument I have had with many people. All of my programming videos are written in VB.NET. I can do anything with VB.NET that can be done with Java, C, C++, C# and Python. Most importantly, from my teacher perspective, VB is the best way to learn programming. A lot of schools start with Python, which I believe is a mistake. Young people get hooked on programming very quickly when they know how to make things appear and disappear on the screen. VB makes this easy. The GUI building facilities for Python are woeful. Python is great for writing your own utility scripts , or server side code (if you are already a programmer), but you can't put a simple message on the screen without adding lots of code that novices find confusing. Ironically, when it comes to OOP concepts, Python lacks the ability to encapsulate code. This leads to a lot of confusion with my advanced students. (OK, I'm Python bashing now, but let's face it, Python was named after a very silly comedy sketch show). I do quite like C# but the Java style syntax catches beginners out. One final thought, most of the pseudocode that my students see on their exam papers looks just like VB. You asked for it!
As a developer the downsides greatly out weight the ups of VB compared to C# as I think I have shown quite clearly, while mostly keeping clear of my personal preferences. Sorry for such a long text)
You sounds like someone on youtube
Интересно, жаль что не на русском
Ok
我完全同意你的看法
@@williamsmith255 универсальный ответ, браво!
@@nickkapatais trelos xaxaxaxa
@@nickkapatais :) χεχε