Programming Languages

| Class | Topic | Lecture slides (pdf) |
| 1 | Introduction to course; intro to OCaml | |
| 2 | Ocaml - tuples and lists | lecture 2(lecture 2 (ann)) (Supplementary notes for lecture 2) |
| 3 | OCaml - type definitions, abstract syntax | |
| 4 | Language implementation overview | |
| 5 | Lexical analysis | |
| 6 | Regular expressions, Ocamllex | |
| 7 | Parsing - context-free grammars, recursive descent parsing | lecture 7(lecture 7 ann) (Code from lecture: 1, 2, 3,1b, 2b, 3b, 3c) |
| 8 | Top-down parsing | |
| 9 | Bottom-up (shift/reduce) parsing | |
| 10 | LR parsing - conflict resolution | lecture 10(lecture 10 ann) (supplement to lecture 10) (The LR theorem) |
| Review for midterm 1 (optional) | ||
| Midterm 1 - 180 Bevier Hall, 7-8:30PM | ||
| 11 | Code generation | |
| 12 | Code generation (cont.) | |
| 13 | Garbage collection; run-time systems for dynamic languages | |
| 14 | History of programming languages | |
| 15 | APL | |
| 16 | Functional programming: higher-order functions | |
| 17 | More higher-order functions | |
| Spring break | ||
| 18 | Even more higher-order functions | |
| 19 | Functional programming in o-o languages | |
| 20 | Review for midterm 2 (optional) | sample questions(solutions) (12:30 review notes) (2:00 review notes) |
| Midterm 2 - 151 Everitt Lab, 7-8:30PM | ||
| 21 | Inference systems; formalizing operational semantics | |
| 22 | Type systems | |
| 23 | Operational semantics | lecture 23 (2-up) (6-up) (Two examples) (handout) (yet another example) |
| 24 | Hoare logic for imperative languages | |
| 25 | Hoare logic for imperative languages | |
| 26 | Advanced topics: Lazy evaluation; lambda-calculus | |
| 27 | Advanced topics: functional programming for parallelism | |
| 28 | Wrap-up; review for final; preview of follow-up courses | For review:sp08-final.pdf(solution) - see below. |

No comments:
Post a Comment