Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

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.


This comment sold me. Gonna keep this as an inactive tab for the next couple months.


Just 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.


Redirect 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 ...


Why not buy an copy and put it on your to-read shelf for the next couple of months?


Months? 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 … ?


>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.


IMO 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.


Makes sense, thanks.


And 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.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: