CSE 130
Principles of Programming Languages
Notes on Readings

As a general remark about the subject matter of this class, we need to talk about programming languages in general, rather than just one particular language. Therefore we will need to develop some rather sophisticated notation that can describe the syntax and the semantics of programming (and other) languages.

These notes are intended to supplement or correct material in the text. They assume familiarity with the readings and are intentionally brief. Sethi takes a broad view of the role of programming languages and their study, focusing on principles behind design, and including historical and cultural information, as well as some underlying mathematics, all of which every well educated computer scientist should know. The chapter numbers in parentheses below refer to chapters in Sethi.


  • Overview, introduction, history (Chapter 1).
  • Syntax, grammar, expressions (Chapter 2).
  • Assignment, control, invariants (Chapter 3).
  • Data types (Chapter 4).
  • Procedures and blocks (Chapter 5).
  • Modules and classes (Chapter 6).
  • Functional Programming (Chapter 8).
  • More Functional Programming (Chapter 9).
  • Logic programming and Prolog (Chapter 11).
  • Notes on Internet Languages.
    To CSE 130 homepage
    Maintained by Joseph Goguen
    © 2000 - 2005 Joseph Goguen
    Last modified: Thu Mar 3 16:56:43 PST 2005