This book provides an introduction to the essential concepts in programming languages, using operational semantics techniques. It presents alternative programming language paradigms and gives an in-depth analysis of the most significant constructs in modern imperative, functional and logic programming languages. The book is designed to accompany lectures on programming language design for undergraduate students. Each chapter includes exercises which provide the opportunity to apply the concepts and techniques presented.
Very introductory. I still prefer "Essentials of programming languages" by Friedman as an introduction to PL. This book has more focus on operational semantics and a final part on logic languages which you won't find in the book aforementioned. All in all it's good as a first text.