Princeton University
Computer Science Dept.

Computer Science 441
Programming Languages

Andrew W. Appel

Fall 1999


Directory
General Information | Schedule and Readings | Assignments | Announcements

Schedule (subject to rearrangement)

Date Topic Reading
9/16 Introduction; ML Ullman 1,2,3
9/21 Inductive Definitions; ML Harper 1; Ullman 5,6
9/23 Scope and substitution Harper 2.1, 2.2
9/28 Static Semantics Harper 2.3PS 1 due.
9/30 Dynamic Semantics Harper 3
10/5 Type Safety Harper 4PS 2 due.
10/7 Evaluation Semantics Harper 5, AnML
10/12 Abstract Machines Harper 6PS 3 due.
10/14 Type Reconstruction Harper 7
10/19 Polymorphism PS 4 due.
10/21 Midterm review
10/26 Data abstraction
10/28 Equational reasoning Harper 8Midterm due.
10/28 Take-Home Midterm Exam DueCovers through October 21
Midterm Break
11/9 Object-oriented programming; Java Arnold
11/11 Object-oriented programming; Java Arnold
11/16 Semantics of subtyping
11/18 Subclassing and subtyping
11/23 Concurrent Programming; shared variables Hoare1974; Reppy 1,2; Arnold 9
11/30 Concurrent ML Reppy 3
12/2 Concurrent ML; Concurrent Programming in Java Reppy 4
12/7 Semantics of CML Reppy Appendix B, Simplified CML Semantics
12/9 Implementation of CML Reppy 10
12/14 Modularity in ML [poly example]Ullman 8
12/16 Modularity in JavaArnold 3, 4, 10
Reading period
1/14 Take-Home Final Exam Due

Readings

Programming Languages: Theory and Practice (manuscript) by Robert Harper, 1999.

Concurrent Programming in ML, by John Reppy, Cambridge University Press, 1999.

Elements of ML Programming, 2nd edition, by Jeffrey D. Ullman, Prentice Hall, 1998.

The Java Programming Language, by Ken Arnold and James Gosling, Addison-Wesley, 1996.

Monitors: an operating system structuring concept, by C. A. R. Hoare, Communications of the ACM, Vol. 17, No. 10, October 1974, pp. 549-557.


Back to COS 441 front page | Assignments