I own just about all the compiler construction books. Most were over my head. Then I discovered chapter 8 of "The Unix Programming Environment" by Brian Kernighan and Rob Pike. This is "Program Development", explaining all the tools one would use to write C programs. Their example, however, is a compiler. Unlike most introductions, they don't just show a 4 function calculator. They go on to add variables, control flow, and functions, making this a really great way to start building languages. Highly recommended, and a hidden jewel. (The full text is readily available on the net.)