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" |
|
|
|