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.
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 email@example.com 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.