Implementing Programming Languages
This book aims to make programming language implementation as easy as possible. It will guide you through all the phases of the design and implementation of a compiler or an interpreter. You can learn the material in one or two weeks and then build your own language as a matter of hours or days.
The book is different from traditional compiler books in several ways:
- it is much thinner, yet covers all the material needed for the task
- it leaves low-level details to standard tools whenever available
- it has more pure theory (inference rules) but also more actual practice (how to write the code)
Of course, it is not a substitute for the ‘real’ books if you want to do research in compilers, or if you are involved in cutting edge implementations of large programming languages. Things that we have left out include lowlevel buffering in lexer input, algorithms for building LR parser generators, data flow analysis, register allocation, memory management, and parallelism. Reading hints will be given for material on these topics. In particular, the ‘Dragon Book’ covers most of these topics. But it does not cover all the things in this book. Due to the approach chosen, you will get very quickly into the business of actually implementing your language and running programs written in it.