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 fifty institutions worldwide, and is referenced by non-academic users on the Web. You can learn about the differences between versions, and get the accompanying software, from the book's Web site (www.plai.org). You can get the same PDF version of the book, free of cost, from its Web site. This is to give you a 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. This book is no longer being maintained. There is a second edition, linked from the book's Web site, but the content has since been incorporated into a new book that will also be linked from the book's Web site when it's ready for public consumption.
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)