CS 565 Spring 1998 Lectures

CS 565 Lectures

Jan 13 - Feb 26:  Programming style and the meaning of programs.
Mar  3 - Apr 30:  Type systems and control-flow analysis.

Tue Jan 13, Thu Jan 15:
Functional programming in Scheme.
Read: EOPL Chapters 1-2, 3.4-3.6.
Lecture note 1 (dvi).
Homework due on Thu Jan 29: Scheme programming.

Tue Jan 27:
Object-oriented programming in Java.
Read: Any good book on Java.
Lecture note 2 (dvi).
Homework due on Thu Feb 5: Java programming.

Tue Feb 3, Thu Feb 5:
A mostly object-oriented programming style in Scheme.
Read: EOPL Chapter 4 (as basis for the homework).
Lecture note 3 (dvi).
Homework due on Thu Feb 12: Implement beta-reduction.

Tue Feb 10:
A mostly functional programming style in Java, with the help of design patterns.
Read: The lecture notes.
Lecture note 4 (dvi). Material on the Visitor pattern will be distributed in hardcopy.
Homework due on Thu Feb 19: Implement a translator of simple Scheme programs into Java.

Thu Feb 12, Tue Feb 17:
An interpreter, written in Scheme, for the core of Java.
Read: EOPL Chapter 5, 7.
Lecture note 5 (dvi).
Homework due on Thu Feb 26: Extend the interpreter.

Thu, Feb 19, Tue Feb 24, Thu Feb 26:
A translation of Scheme programs to simple Java programs via CPS-conversion.
Read: EOPL Chapters 8.1-8.5, 9.1-9.2, 10.1-10.2.
Lecture note 6 (dvi).
Homework due on Thu Mar 5: Implement CPS-conversion.

Tue Mar 3, Thu Mar 5:
Simple types for the core of Scheme.
Read: The lecture note.
Lecture note 7 (dvi).
Homework due on Thu Mar 19: Implement type inference.

Tue Mar 17, Thu Mar 19:
Structural subtyping and recursive types.
Read: ``Efficient recursive subtyping.''
Lecture note 8 (dvi).
Homework due on Thu Mar 26: Implement the decision procedure for subtyping.

Tue Mar 24, Thu Mar 26:
The Java type system.
Read: OOTS Chapter 1-4.
Lecture note 9 (dvi).
Homework due on Thu Apr 2: Implement a simple Java type checker.

Tue Mar 31, Thu Apr 2:
Control-flow analysis.
Read: OOTS chapter 5.
Lecture note 10 (dvi).
Homework due on Thu Apr 9: Implement a constraint solver.

Tue Apr 21, Thu Apr 23:
Fast control-flow analysis for a simply-typed core of Scheme.
Read: ``Linear-time subtransitive control flow analysis'' (ps).
Lecture note 11.
Homework due on Thu Apr 30: The fast control-flow analysis.

Tue Apr 28:
Equivalences between type systems and control-flow analysis.
Read: ``A type system equivalent to flow analysis'' (ps).

Thu Apr 30:
Questions and answers.