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.
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.
- Modern Compiler Implementation in C
- A Crash Course for the MiniCaml Compiler
- Modern Compiler Design
- A Retargetable C Compiler: Design and Implementation
- Programming Language Pragmatics, Second Edition
- Linkers and Loaders
- Introduction to Automata Theory, Languages, and Computation
- Basics of Compiler Design
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.