CIS 505. Captain's Log: Programming Languages, Fall 2008.
- Aug 26: session 1;
Administrivia; Please remember to install the
OCaml Emacs mode.
- Aug 28: A Quick Tour of OCaml session 2;
Parsing; simple interpreter for arithmetic;
simple examples in OCaml; base types and operations.
- Sep 2: TWO LECTURES:
A Quick Tour of OCaml session 3,4; Pairs,
recursive and non-recursive function declarations, lists. Simple functions
on lists. Polymorphism; basic type inference.
Examples
- Sep 4: NOTE: There will be extra lectures next week on Tuesday and
Thursday from 4:00 PM to 5:30 PM in N 122.
A Quick Tour of OCaml session 5; Anonymous
functions; several examples involving typing and evaluation. Please
continue reading Hickey's notes and the Developing Applications book.
- Sep 9: TWO LECTURES:
A Quick Tour of OCaml session 6,7;
Pattern matching; map; currying; functions returning functions; scoping;
record types; enumerated types; sum of product types;
- Sep 11: TWO LECTURES:
A Quick Tour of OCaml session 8;
Simple functions on trees; exceptions; tail recursion.
First class functions session 9. Please
read first class functions first.
- Sep 16: TWO LECTURES:
First class functions session 10. Different
patterns: filter, list accumulation, list generation.
Interpreters session 11 for Booleans and
Arithmetic.
- Sep 18: TWO LECTURES:
Interpreters sessions 12,13 for
a functional subset of OCaml; let's and let rec's; free and bound
variables; substitution.
- Sep 23 and Sep 25: No lectures, instructor away.
- Sep 30: Abstract machines session 14; The C-machine and the E-machine.
- Oct 2: Abstract machines concluded with a discussion on
environments.
Type checking session 15
- Oct 7 and Oct 9: No lectures, instructor away.
- Oct 14: Discussion of Homework 3; Type checking continued: the
functional fragment, canonical forms, progress and preservation theorems.
session 16
- Oct 16: Discussion of Homework 4;
Type inference. session 17
- Oct 21: Discussion of practice exams;
Type inference. session 18
- Oct 23: MIDTERM EXAM
- Oct 28: Type inference ended with a discussion on unification
session 19; Midterm handed back, slight
discussion on solutions.
- Oct 30: Featherweight Java: example programs, typing rules.
session 20
- Nov 4: Featherweight Java; typing rules, evaluation rules, progress and
preservation theorems. session 21
- Nov 6: Discussed solution to Assignment 6; discussed assignment 7;
the O-machine session 22
- Nov 11: The O-machine: transition rules session 23; Pair example
- Nov 13: Secure Information Flow session 24