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.