7 ms·
I feel like this is a book most programmers should work through at some point or another. Doing so made me really appreciate just what's going on inside a compi
by chris37879 2y ago
I feel like this is a book most programmers should work through at some point or another. Doing so made me really appreciate just what's going on inside a compiler / language toolkit. It's also one of the most well written technical guides I've ever followed, it really helped me internalize the concepts, and they are useful all over the place, not just in compilers.
- sva_ 2y agoThis comment sold me. Gonna keep this as an inactive tab for the next couple months.
- phyrex 2y agoWhy not buy an copy and put it on your to-read shelf for the next couple of months?
- blackerby 2y agoMonths? How about years? And then start it, step away for a year, come back and start it again, then step away for a year, come back and … ?
- BoiledCabbage 2y agoJust to be safe, make sure to also copy the url into a note app, or some other location where you'll never look at it again.
- fuzztester 2y agoRedirect it to /dev/null, that way you'll never see it again, so won't feel guilty: $ cat this >/dev/null Bonus points for redirecting standard error to standard output: $ cat this >/dev/null 2>&1 Now no one will hear the screams ...
- fuzztester 2y ago>really helped me internalize the concepts, and they are useful all over the place, not just in compilers. Which are some of those places? Parsing data formats could be one, I guess.
- turndown 2y agoIMO compilers make you a lot more mature in recursive algorithms and trees, and then after that much more conscious about what exactly the code you write resolves to in terms of that languages semantics. Learning how closures work(variable capture and having to traverse the scope stack to find bound variables) is also a positive.
- fuzztester 2y agoMakes sense, thanks.
- turndown 2y agoAnd that’s just for your first recursive descent compiler. One thing to remember is that you will also one day want extended functionality in your language and either implement C FFI in your language(straightforward or even freely done for you depending on language) and call some C library for the purpose or you have to implement the functionality somehow. So you end up writing a lot of stuff you wouldn’t otherwise.