Learning Compilers and Parsers

It’s been several years since I dropped out of my university. This sadly means, I haven’t really had a necessity to do any academia type of stuff, in this context, anything really related to Compilers and Parsers. While we had some classes related to those subjects, back then I wasn’t really eager to learn too much as it was something I found irrelevant. Now, couple of years later, I’m really intrigued by this subject and I have a huge desire to write a simple compiler on my own.

Besides the book I bought few months ago, Writing an interpreter in Go which I of course didn’t finish (barely started), I haven’t had any opportunities to get back to understanding how Compilers really work. If you whatsoever are exposed to this type of stuff in your every day work, you are a lucky fellow.

Besides the book that I just mentioned, I rented a Dragon’s book from the Copenhagen’s Royal Library and so far I’m having a lot of fun with it.

Based on my research, regardless of the fact that Dragon’s book has been released really long ago, it’s still covers fundamental ideas of how Compilers work and not much has changed past two decades. This means that this is still by far, one of the best books for learning about Compilers.

Anyway, the reason I’m writing this article is mainly to share some of the resources I found during my research that could help you on your way on becoming proficient in Compiler theory and practice.

Keep in mind that you are looking for a book which is strictly focused on learning about Compilers and not something very bound to a specific programming language. You want to learn the theory and apply in practice but not bind yourself to a programming language that you maybe don’t know and spend half of the time learning the language instead of the Compiler context.

I’ll keep expanding this article as I keep getting more information about Compilers and as I get better at it myself.