Programming Languages: Application and Interpretation

Programming Languages: Application and Interpretation (PLAI) is a free programming language textbook by Shriram Krishnamurthi. It is in use at over 30 universities, in several high-schools.

The book differs from most other programming language texts in its attempt to wed two different styles of programming language education: one based on language surveys and another based on interpreters. In the former style, it can be too easy to ignore difficult technical points, which are sometimes best understood by trying to reproduce them (via implementation); in the latter, it can be too easy to miss the high-level picture in the forest of details. PLAI therefore interleaves the two, using the survey approach to motivate ideas and interpreters to understand them.

The book is accompanied by supporting software that runs in the Racket programming language.

Since PLAI is constantly under development, some of the newer material (especially assignments) is found on course pages at Brown University.

PLAI is also an experiment in publishing methods. The essay Books as Software discusses why the book is self-published. The current public release is version 3.2.2 (2023-02-26) is available as a free electronic edition for screen use or printing.