CS 565 Fall 1997 Lectures
CS 565 Lectures
Aug 25 - Oct 3: Programming style and the meaning of programs.
Oct 6 - Dec 12: Type systems and control-flow analysis.
-
Mon Aug 25, Wed Aug 27, Fri Aug 29:
-
Functional programming in Scheme.
Read: EOPL Chapters 1-2, 3.4-3.6.
Lecture note 1
(dvi).
Homework due on Thu Sep 4:
Scheme programming.
-
Wed Sep 3, Fri Sep 5:
-
Object-oriented programming in Java.
Read: Any good book on Java.
Lecture note 2
(dvi).
Homework due on Thu Sep 11:
Java programming.
-
Mon Sep 8, Wed Sep 10, Fri Sep 12:
-
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 Sep 18:
Implement beta-reduction.
-
Mon Sep 15, Wed Sep 17, Fri Sep 19:
-
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 Sep 25:
Implement a translator of simple Scheme programs into Java.
-
Mon Sep 22, Wed Sep 24, Fri Sep 26:
-
An interpreter, written in Scheme, for the core of Java.
Read: EOPL Chapter 5, 7.
Lecture note 5
(dvi).
Homework due on Thu Oct 2:
Extend the interpreter.
-
Mon Sep 29, Wed Oct 1, Fri Oct 3:
-
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 Oct 9:
Implement CPS-conversion.
-
Mon Oct 6, Wed Oct 8, Fri Oct 10:
-
Simple types for the core of Scheme.
Read: The lecture note.
Lecture note 7
(dvi).
Homework due on Thu Oct 16:
Implement type inference.
-
Wed Oct 15, Fri Oct 17:
-
Structural subtyping and recursive types.
Read: ``Efficient recursive subtyping.''
Lecture note 8
(dvi).
Homework due on Thu Oct 23:
Implement the decision procedure for subtyping.
-
Mon Oct 27, Wed Oct 29, Fri Oct 31:
-
The Java type system.
Read: OOTS Chapter 1-4.
Lecture note 9
(dvi).
Homework due on Thu Nov 6:
Implement a simple Java type checker.
-
Mon Nov 3, Wed Nov 5, Fri Nov 7:
-
Control-flow analysis.
Read: OOTS chapter 5.
Lecture note 10
(dvi).
Homework due on Thu Nov 13:
Implement a constraint solver.
-
Wed Dec 3, Fri Dec 5:
-
Fast control-flow analysis for a simply-typed core of Scheme.
Read: The lecture note.
Lecture note 11.
Homework due on Thu Dec 11:
Implement the fast control-flow analysis.
-
Mon Dec 8, Fri Dec 12:
-
Equivalences between type systems and control-flow analysis.
Read: ``A type system equivalent to flow analysis.''
-
Wed Dec 10:
-
Flow Analysis of Java Bytecodes.
Special Lecture by Tony Hosking, Purdue University.