Principles of Programming Languages
Notes on Readings
These notes are intended to supplement or correct material in the texts.
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.
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
Notes on 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).
- Logic programming and Prolog (Chapter 11).
- Lambda Calculus (Chapter 14).
Notes on Algebraic Semantics
- Introduction (Chapter 0).
- Algebraic Background (Chapter 1).
- Stores, Variables, Values, Assignment (Chapter 2).
- Composition and Conditionals (Chapter 3).
- Proving Program Correctness (Chapter 4).
- Iteration (Chapter 5).
- First Order Logic (Appendix B).
To CSE 230 homepage
Maintained by Joseph Goguen
© 2000, 2001, 2002, 2003 Joseph Goguen
Last modified: Thu Mar 6 11:14:35 PST 2003