Moon's day | Woden' s day | Frigga's day |
---|
Jan 14 |
Introduction and history Slides |
|
|
|
Jan 18 |
Syntax. Formal languages and the compilation process [2.1] |
|
|
|
Jan 23 |
Syntax; representing a language in Java and ML [2.2] Slides |
proj 1, due 1/30
|
|
|
Jan 28 |
More on parsing algorithms; parser generators Slides |
|
|
|
Feb 1 |
Abstract syntax [2.3] |
proj 3, due 2/8
|
|
Feb 4 |
Semantics. Types [3.1] |
|
|
|
|
Feb 11 |
State transformations, operational semantics [3.(2-3)] |
proj 4, due 2/20
|
|
Feb 13 |
Axiomatic semantics and denotational semantics [3.(4-5)] Slides |
|
|
Feb 15 |
Imperative programming. Imperative languages [4.(1-4)] |
|
|
|
|
|
Feb 25 |
Memory issues Run-time memory [5.(1-2.2)] |
|
|
Feb 27 |
Call and return [5.2.3] |
|
|
|
Mar 3 |
Structs and semantics [5.(5-6)] Slides |
|
|
|
Mar 7 |
Garbage collection [5.7] |
|
|
|
|
|
|
|
|
Mar 24 |
Object-oriented programming. Introduction to OO [7.1, 7.2.(1-2)] Slides |
proj 7, due 3/31
|
|
Mar 26 |
Type checking in OO |
|
|
Mar 28 |
Polymorphism [7.2.(5-6)] |
|
|
|
|
Apr 4 |
OO without classes Slides |
|
|
Apr 7 |
Functional programming. Lambda calculus [8.1] For Wed: [ps] [pdf] |
|
|
Apr 9 |
More lambda calculus |
proj 9, due 4/23
|
|
Apr 11 |
Constructing a functional language Slides |
|
|
Apr 14 |
Recursion and lists |
|
|
Apr 16 |
Types in a functional language Slides |
|
|
Apr 18 |
Type-soundness proofs |
|
|
Apr 21 |
Finishing type-soundness proofs |
|
|
Apr 23 |
Tail form / continuation passing style |
|
|
Apr 25 |
Compilation. Compiling Jay |
proj 10, due 5/2
|
|
Apr 28 |
Classfiles and the JVM instruction set |
|
|
Apr 30 |
"Growing a Language" |
|
|
|