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.
Providing a concise introduction to the essential concepts in programming languages, using techniques from operational semantics, this book highlights three major programming paradigms:
• Imperative languages: the main features of these languages are illustrated with examples in Java, Python, C;
• Functional languages: modern languages such as ML and Haskell are used to describe the functional style of programming;
• Logic languages: the last part of the book gives an overview of logic programming using Prolog.
Following a general description of each family of languages, their semantics are studied using abstract machines and structural operational semantics. Programming Languages and Operational Semantics gives an in-depth analysis of the basic concepts in programming languages instead of a mere survey of languages, assisting the understanding of the fundamental notions in programming languages over simply describing their properties.
It isaddressed to undergraduate students, as a complement to programming courses.