| Moon's day | Woden' s day | Frigga's day |
|---|
| |
|
|
Jan 15 |
|
Defining programing languages Slides |
|
|
| |
|
Jan 20 |
|
Imperative programming. Lexical and syntactic structure [1.6; 2.(1&2)] |
proj 1 due 1/26
|
|
|
|
Jan 25 |
|
Concrete and abstract syntax [2 & 3] Slides |
proj 2 due 2/1
|
|
|
Jan 27 |
|
Types[5.(1-3); 6.3] |
|
|
|
Jan 29 |
|
Type-checking [6] |
proj 3 due 2/8
|
|
|
Feb 1 |
|
Formal semantics[7.(1-4); 8.(1, 4)] |
|
|
|
|
|
Feb 8 |
|
Switch statements; casting [5.3] |
|
|
|
|
Feb 12 |
|
More on procedures [10] |
|
|
| |
|
|
Feb 19 |
|
Arrays and dynamic memory [5.4.3; 11.(1&2)] |
proj 5 due 3/1
|
|
| |
|
|
| |
|
|
Mar 5 |
|
Alternative constructs in imperative languages |
|
|
| |
|
|
|
Mar 15 |
|
Object-oriented programming. Introduction [13] |
proj 6 due 3/24
|
|
|
Mar 17 |
|
Type in OO; polymorphism [(5.8) & (9)] |
|
|
|
Mar 19 |
|
Type checking in OO |
|
|
| |
|
Mar 24 |
|
Alternative formulations of OO |
proj 7 due 3/31
|
|
|
Mar 26 |
|
More alternatives: method update |
|
|
| |
|
Mar 31 |
|
More lambda calculus |
|
|
|
|
Apr 5 |
|
Building a functional programming language |
proj 8 due 4/21
|
|
|
|
Apr 9 |
|
Continuation passing style |
|
|
|
Apr 12 |
|
Types in functional languages |
|
|
|
Apr 14 |
|
Type soundness proofs [18.4] |
|
|
|
|
Apr 19 |
|
Compilation. Introduction |
proj 9 due 4/28
|
|
|
Apr 21 |
|
Classfiles and the JVM |
|
|
|
Apr 23 |
|
Alternatives. Data flow languages; declarative languages [15] |
|
|
|
Apr 26 |
|
Concurrent languages [17] |
|
|
|
Apr 28 |
|
"Growing a Language" |
|
|
|