This book is a one-stop-shop for basic compiler design -- anyone with a solid understanding of Java should be able to use this book to create a compiler. Galles writes a very practical text -- all theoretical topics are introduced with intuitive justification and illustrated with copious examples. This book is intended for anyone interested in learning basic compiler design.