Schedule

CS131: Programming Languages
Spring 2002

Links will be added as material becomes available.

Part 1: Programming in Standard ML
1/23 Course Overview [Syllabus]
1/28 Concrete/Abstract Syntax [Ansi C grammar handout]
1/30 SML Examples [queues] [sets] [arithmetic]
    [Assignment 1] [assign1.sml] [Sample Solution]
2/4 Lexing and Parsing  
2/6 (L&P continued) [Assignment 2] [code.sty] [Sample Solution]
2/11 A Simple Interpreter [Assignment 3] [Interpreter sources]
2/13 Operational Semantics [Assignment 4] assign4.sml [Sample Solution]
2/18 Static/Dynamic Scope  
2/20 Recursion and Assignment [Assignment 5] [Sample Solution]
2/25 Type Systems  
2/27 Subtyping

[Assignment 6] [assign6.sml] [Sample Solution]

    [test1.sfl] [test2.sfl]
3/4 Polymorphism  
3/6 Classes and Objects [Assignment 7] [A7 .ps file] [Sample Solution]
3/11 Functions as Values  
3/13 Closures and Objects
3/18 SPRING BREAK  
3/20 SPRING BREAK  
3/25 Procedure Calls [Assignment 8] [Knuth] [Dijkstra]
3/27 Video: "Growing a Language" [Transcript]
4/1 Discussion [Bentley]
4/3 Lambda Calculus Intro [Assignment 9] [Sample Solution]
4/8 Lambda Calculus Arithmetic [Assignment 10] [Sample Solution]
4/10 Lambda Calculus Concluded [Assignment 11] [Sample Solution]
4/15 Combinatory Logic  
4/17 Typed LC and Logic [Assignment 12] [Sample Solution]
4/22 Type Inference [Assignment 13] [Sample Solution]
4/24 Garbage Collection  
4/29 Expressiveness [Review Sheet]
5/1 Partial Evaluation