| Schedule subject to change as course progresses. |
| Lecture slides for not yet given lectures are preliminary, and may change. |
| Class | Date
| Topic |
Lecture slides (pdf) |
Hwk due |
| 1
| 1-15
| Introduction to course; intro to OCaml
| class1 - 1-15.pdf
|
|
| 2
| 1-17
| Ocaml - lists
| class2 - 1-17.pdf
(and supplementary notes)
| Hwk 1 (Use OCaml)
|
| 3
| 1-22
| OCaml - type definitions, abstract syntax
| class3 - 1-22.pdf
| Hwk 2 (List processing)
|
| 4
| 1-24
| Language implementation overview
| class4 - 1-24.pdf
|
|
| 5
| 1-29
| Lexical analysis
| class5 - 1-29.pdf
| Hwk 3 (Tree processing, ASTs)
|
| 6
| 1-31
| Regular expressions, Ocamllex
| class6 - 1-31.pdf
|
|
| 7
| 2-5
| Parsing - context-free grammars, recursive descent parsing
| class7 - 2-5.pdf
| Hwk 4 (ocamllex)
|
| 8
| 2-7
| Top-down parsing
| class8 - 2-7.pdf
(and supplementary notes from Prof. Kamin
and from Chris Osborn)
|
|
| 9
| 2-12
| Bottom-up (shift/reduce) parsing
| class9 - 2-12.pdf
(and supplementary notes from Prof. Kamin)
| Hwk 5 (Simple recursive-descent parser)
|
| 10
| 2-14
| LR parsing - conflict resolution, ambiguity
| class10 - 2-14.pdf
|
|
| 11
| 2-19
| Code generation
| class11 - 2-19.pdf
| Hwk 6 (ocamlyacc)
|
| 12
| 2-21
| Code generation and garbage collection
| class12 - 2-21.pdf
|
|
| 13
| 2-26
| Review for midterm (optional)
|
| Hwk 7 (Code gen)
|
|
| 2-27
| Midterm in evening
|
|
|
| 14
| 2-28
| History of programming languages
| class14 - 2-28.pdf
|
|
| 15
| 3-4
| APL
| class15 - 3-4.pdf (and an APL reference)
|
|
| 16
| 3-6
| Object-oriented languages - history and implementation
| class16 - 3-6.pdf
| Hwk 8 (APL)
|
| 17
| 3-11
| Functional programming - concepts, history, higher-order functions
| class17 - 3-11.pdf
|
|
| 18
| 3-13
| More F.P., O-o programming in OCaml
| class18 - 3-13.pdf (ignore page 8)
|
|
|
| 3-19, 3-21
| Spring break
|
|
| 19
| 3-25
| F.P. implementation
| class19 - 3-25.pdf
(and supplementary notes from Prof. Kamin)
|
|
| 20
| 3-27
| Lazy evaluation, lambda calculus
| class20 - 3-27.pdf
| Hwk 9 (Higher-order functions)
|
| 21
| 4-1
| Functional programming in object-oriented languages
| class 21 Functional Prog in o-o Langs.pdf
|
|
| 22
| 4-3
| Operational semantics of OCaml
| class22 - 4-3.pdf
|
|
| 23
| 4-8
| Operational semantics of imperative languages
| class23 - 4-8.pdf
|
|
| 24
| 4-10
| Type systems and their formal definition
| class24 - 4-10.pdf
| Hwk 10
|
| 25
| 4-15
| Proving properties of recursive functions
| class25 - 4-15.pdf
|
|
| 26
| 4-17
| Proving properties of recursive functions (cont.)
| class26 - 4-17.pdf
| Hwk 11
|
| 27
| 4-22
| Hoare logic for imperative languages
| class27 - 4-22.pdf
|
|
| 28
| 4-24
| (cont.)
| class 28 - 4-24.pdf or
class 28 4-24.ppt (animated powerpoint)
| Hwk 12
|
| 29
| 4-29
| Wrap-up and review, preview of follow-up courses
| class 29 - 4-29.pdf and
solutions
(I've had some problems with printing the solutions, so
here they are in Word format.)
|
|