Programming Languages: Concepts and Implementation is a textbook on the fundamental principles of programming languages through a combination of concept-based and interpreter-based approaches. The book focuses on implementation and features conceptual and programming exercises that give students practical experience applying language theory and concepts.

The book also showcases the construction of a progressive series of language interpreters in Python that implements core language concepts such as scope, first-class functions, and parameter passing.

Other programming styles, including logic/declarative programming and compelling language features, such as first-class continuations, are also discussed. Concepts are presented in Python, Scheme, JavaScript, Ruby, ML, Haskell, Prolog, and other programming languages.

This book is intended as a general-purpose textbook for a course on programming languages.

Key Features

  • Hybrid conceptual- and interpreter-based approach.
  • Hands-on implementation-oriented focus.
  • Numerous conceptual and programming exercises.
  • Interpreter-based projects in Python (and Scheme).
  • All interpreter code (and solutions) in Python are provided as a Git repository in BitBucket.
  • Language tutorial appendices on Python, ML, and Haskell.