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.
From the book reviews:
"This text can serve as a complement to traditional undergraduate programming language course resources or as the main textbook for introductory courses in programming language operational semantics. The book is well organized, flows well, and is pleasant to read. ... Summing Up: Recommended. Upper-division undergraduates and faculty." (D. Papamichail, Choice, Vol. 52 (5), January, 2015)
"There are many things in this book that would lead to its recommendation as a course textbook: it provides a good breadth of material, and a stepping stone from programming experience to more theoretical aspects of programming languages. ... it would be an excellent addition to a reference list that could be used to inform a solid understanding of programming language theory." (Sara Kalvala, Computing Reviews, July, 2014)
"This text can serve as a complement to traditional undergraduate programming language course resources or as the main textbook for introductory courses in programming language operational semantics. The book is well organized, flows well, and is pleasant to read. ... Summing Up: Recommended. Upper-division undergraduates and faculty." (D. Papamichail, Choice, Vol. 52 (5), January, 2015)
"There are many things in this book that would lead to its recommendation as a course textbook: it provides a good breadth of material, and a stepping stone from programming experience to more theoretical aspects of programming languages. ... it would be an excellent addition to a reference list that could be used to inform a solid understanding of programming language theory." (Sara Kalvala, Computing Reviews, July, 2014)