About this book
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.