Principles of Programming Languages

Winter 1999

Some history and comparison of languages. Regular expressions; abstract and concrete syntax; Post systems; Peano, structural, and well founded induction. Algebraic semantics and term rewriting; program specification and verification. Unification and logic programming; lambda calculus, combinators, polymorphism; denotational semantics.

- Tuesday, Thursday 2:20pm-3:40pm, Room WLH 2113.
- Section A00, ID 329295

**The Study of Programming Languages**, by Ryan Stansifer, Prentice Hall, 1995. ISBN 0-13-726936-6.

**Algebraic Semantics of Imperative Programs**, by Joseph Goguen and Grant Malcolm (MIT Press, 1996). ISBN 0-262-07172-X.

Grades will be determined as follows: 40% for the final, 25% for the midterm, and 35% for the homework. The grader for this course is Grigore Rosu. The midterm was on 11 February 1999, the final was on 16 March 1999, and both of these are now online.

Prerequesites for this class are CSE 130, CSE 100, CSE 20, CSE 12, and one
of the basic programming courses. If you are not thoroughly familiar with the
discrete mathematics taught in CSE 20, you really should not be in this class;
if you need a review, a good CSE 20 textbook is **Discrete Mathematics with
Applications**, by Susanna Epp (Brooks/Cole 1995).

If you are not a CSE student, you can email *csehelp@cs.ucsd.edu* to
request a CSE student account.

If you find bugs in either of the textbooks, please send me email; I would like to put a comprehensive bug list on the web.

The midterm and its OBJ code are online at **mid99.ps.gz** and
**obj/mid99.obj.html**. The final is online at
**fin99.ps.gz**. See also the Preliminary Essay on
Programming Linguistics and the An OBJ3 Survival
Guide.

To courses homepage

Maintained by Joseph Goguen

Last modified 18 March 1999