The subject of this class is principles of programming languages, rather than just some set of particular languages. Therefore we need some rather sophisticated notation that can describe the syntax and the semantics of programming languages in general. Like Sethi, we take a broad view of the role of programming languages and their study, which includes historical and cultural information, as well as some underlying mathematics, all of which every well educated computer scientist should know.
These notes are intended to supplement or correct material in the text. They assume familiarity with the readings and are intentionally brief. The chapter numbers in parentheses below refer to chapters in Sethi.