5 ms·
I notice that compilers are often singled out (unfairly imo) in these discussions. I found the language theory + compilers sequence to be one of the most practi
by leetcrew 6y ago
I notice that compilers are often singled out (unfairly imo) in these discussions. I found the language theory + compilers sequence to be one of the most practically useful parts of the entire major. in two semesters, I went from helpless googling to actually understanding compiler errors. I'll concede that the typical "toy compiler" projects are maybe not the best use of time for someone who wants to be a software engineer, but understanding PDAs and context-free languages is super helpful when you don't have the luxury of using a friendly compiler. most of the value is front-loaded in language theory, but a compilers course really drives the concepts home.
- 908B64B197 6y ago"Look man I just used that regex to parse the HTML response. Easy" "You can't parse HTML like that, it's not regular" "What do you mean regular? Look the regex works no need to complicate things we're trying to resolve this JIRA ticket" See, no need for these fancy compilers!
- angry_octet 6y agoAnd yet, these things are easily comprehensible facts without you needing to understand how to implement an LL1 parser. More generally, I can always come up with something you can't understand without some specialised knowledge. I could argue that you couldn't possibly be a computer scientist / software engineer unless you understand the foundations of digital logic -- how else to understand safe implementation of crypto, caching and VM? Who cares about big O when people write pointer hungry code that faults to main memory every cycle? I guess we might both be arguing for 'knowing what we don't know' and where to start looking.
- username90 6y agoYou can parse HTML using regex. Not all HTML, but specific HTML pages are almost always regular as they typically have well formed nesting. It isn't a good idea but language theory doesn't say it is impossible.