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.