[I posted this on Hacker News. Reposting it here to reach a different audience.]
For years I have been interested in programming languages and their implementation. I have made many attempts over time to create my own (experimental) programming languages, mostly interpreters.
The problem is, my knowledge of this area of computer science is fragmented, to say the least. I picked up things here and there, but I never learned how to properly implement a compiler, interpreter, virtual machine, or even a parser.
So, I have decided to pick a book and work my way through it. I just don’t know which book. They all seem equally intimidating. A few candidates that I am considering are:
- The Dragon Book (new version, 2006); seems awfully big though, making me wonder whether I should pick a book that is a bit less comprehensive first, then come back to this one later;
- The Dragon Book (old version, 1986)
- Engineering a Compiler, by Keith Cooper and Linda Torczon
- Parsing Techniques – A Practical Guide, by Dick Grune; focuses on parsing though rather than the whole package
So my question is, which of these books, or any others, do people recommend? (My main interests would be interpreters and languages that compile to bytecode, either custom or targeting existing VMs. “Traditional” compilers that produce a standalone executable, not so much.)
Thanks in advance!