Let's Build a Compiler
by Jack Crenshaw
Number of pages: 277
This fifteen-part series, written from 1988 to 1995, is a tutorial on the theory and practice of developing language parsers and compilers from scratch. Before you are finished, you will have covered every aspect of compiler construction, designed a new programming language, and built a working compiler. At the end of this series you will by no means be a computer scientist, nor will you know all the esoterics of compiler theory. The author intended to completely ignore the more theoretical aspects of the subject. What you will know is all the practical aspects that one needs to know to build a working system.
Download or read it online for free here:
by Allen I. Holub - Prentice-Hall
The approach is similar to that taken by Tanenbaum for operating systems in the C-language that implements all algorithms. The book presents the subject of Compiler Design in a way that's understandable to a programmer, rather than a mathematician.
by Stephen Diehl - StephenDiehl.com
We will build a small functional language called Fun, complete with a parser, type inference, datatypes, pattern matching, desugaring, typeclasses, higher-kinded types, monadic IO, arbitrary-rank polymorphism, records, Core language, etc.
by Niklaus Wirth - Addison-Wesley Pub
This book has emerged from the author's lecture notes for an introductory course in compiler design at ETH Zürich. This book will try to explain why this subject is considered as important and relevant to computer science students in general.
by Niklaus Wirth, Jürg Gutknecht
Here are the results of Project Oberon, which goal was to design an entire system from scratch. It gives advice on how a system might be built, and demonstrates how one was built. Program listings alone contain the ultimate explanations.