This is the Web site for Programming Languages: Application and Interpretation, often referred to by its initials as PLAI (pronounce it like “play”). Over the years well over fifty academic institutions (that I know of) have used PLAI.
PLAI is designed for upper-level courses that introduce the main ideas of programming languages. In the US, it is designed for students in their second- through fourth-years of college, as well as starting graduate students. However, PLAI has been used with students much younger, including in a few select high school classes.
The book is about to start its third edition.
The first edition was written between 2000 and 2007.
The second edition was written in 2012. It has much of the same content as the first edition. The major changes include:
Switching to a statically typed (and type-inferred) language.
Over the years, teaching the material had taught me newer and better ways of presenting some of the content. These changes were reflected in the prose.
Low-level rewriting of the prose in several places.
Reducing a bit of the content, in part becuase it was not entirely compatible with the typed language.
A phylogenetic branch, Programming and Programming Languages (PAPL), has been under construction since 2013.
The third edition of PLAI is a significant reboot of the franchise. It is based on several bits of research into how students program, what they learn and don’t learn, and what they know entering an upper-level programming languages class. This requires a significant rethinking of both the what and the how. While I expect a lot of the existing material of PLAI will persist but in reorganized form, I’m not allowing myself to be constrained by the old formats.