Essentials of Programming Languages - Daniel P. Friedman (Prentice' Hall of India, 1998)
This text teaches the fundamental concepts of programming languages through numerous short programs, or "interpreters", that actually implement the features of a language. Nearly 300 exercises using these programs provide a hands-on understanding of programming principles.