A practical guide to writing interpreters and compilers. Shows how to write a series of useful utilities, including an interactive debugging interpreter and a working compiler, in a top-down, incremental fashion. Hands-on approach encourages experimentation with these programs on a personal computer. Presentation is independent of operating system and compiler writing system. All the programs are written in the C language. Includes exercises.
A good book to practice multi topics in the same project compiler, oop principles, design pattern, and teach you how debugger and IDE created, But the problem is in some chapters the code is not complete and I recommend to start with Crafting Interpreter or Modern Compiler Implementation
This would be a 5 star review, but the code examples get harder and harder to follow in later chapters, since the code listings are not complete in the text. Still, it gives excellent instruction on how to write a lexer, parser, interpreter, and compiler in Java.