This book unites two approaches to teaching programming languages, one based on a survey of languages and the other on writing definitional interpreters. It has been used as a textbook at over fifteen institutions worldwide, and is referenced by non-academic users on the Web. The book is updated approximately every year. You can learn about the differences between versions, and get the accompanying software, from the book's Web site. You can get the same PDF version of the book, free of cost, from its Web site. This is to give you a choice: if you want to pay the author, get it from here; if you don't (or can't afford to), get it for free from there.
PLAI is a superb successor to EOPL, Daniel P. Friedman, Mitchell Wand, and Christopher T. Haynes' Essentials of Programming Languages. The explanations are clear and deep and the code is beautiful.
Amazing book about building programming languages with a very easy-going process of building interpreters. Even if you never plan on designing a programming language, it can be very instructive (if you take programming seriously)