Lambda Bound University of British Columbia, Department of Computer Science
CPSC 311 Definition of Programming Languages:
"Lambda Bound"

Winter 2013 Term 1

Course Goals     Syllabus     Notes     Assignments     Bonus Points     Piazza     Wiki     Blog
Lambda Bound
CPSC 311, Definition of Programming Languages

Lectures

Newsflash: shortly after each lecture, videos should be available from within UBC (or the UBC VPN).

Most lecture will involve code, not slides. We will post any slides and also code that significantly adds to the textbook. Otherwise: read the textbook! When we cover a section, read the section carefully and work the exercises, even when we don't explicitly discuss material from a section in class.

Note: To "skim" means to go through once: "eyes meet the page" (but be sure to work through the "Do Now" exercises). To "read" means to carefully inspect with a pen (or physical/digital equivalent) in hand; jot down, look up, and answer questions; work exercises; and generally interrogate the book.

 DateSubjectMaterialsReading for this Lecture
Wed Sep 4 Intro Notes for day one plus orgmode version Read Chapter 1
Fri Sep 6 Concrete Syntax, Abstract Syntax, and Parsing Notes for day two plus orgmode version Read Chapter 2 and Skim Chapter 3
Mon Sep 9 Concrete Syntax, Abstract Syntax, and Parsing (continued) and Interpreters, Expressions/ASTs, and Values Notes for day three plus orgmode version No reading because Steve posted it too late.
Wed Sep 11 QUIZ and Catch-up Notes for day four plus orgmode version Read Chapter 3 and Skim Chapter 4
Friday the 13th Scary Catch-up Notes for day five plus orgmode version; nondet interp starter, working version, and support utilities Read Chapter 4 and Skim Chapter 5
Mon Sep 16 Desugaring Notes for day six plus orgmode version; desugared numbers starter, working version, and support utilities No new reading
Wed Sep 18 NO CLASSES AT UBC
Fri Sep 20 Functions intro Notes for day seven plus orgmode version; functions intro starter, working version, and support utilities Read Chapter 5 and Skim Chapter 6
Mon Sep 23 Functions intro continued Notes for day eight plus orgmode version (continues last set of notes) No new reading
Wed Sep 25 QUIZ and Environments Notes for day nine plus orgmode version Read Chapter 6 and Skim Chapter 7
Fri Sep 27 Functions and Environments, continued Notes for day ten plus orgmode version No new reading.
Mon Sep 30 Functions and Environments, continued Notes for day eleven plus orgmode version Still no new reading.
Wed Oct 2 Exam-Related Activity (not quiz) + Functions and Environments Pre-posted Midterm Background; Notes for day twelve plus orgmode version Still no new reading.
Fri Oct 4 Functions and Environments Notes for day thirteen plus orgmode version; lazy evaluation and code illustrating static scoping Review all reading up to now.
Mon Oct 7 Environments Notes for day fourteen plus orgmode version; code illustrating static scoping and BReaking BAd test cases Review all reading up to now.
Wed Oct 9 Environments and Lazy Evaluation Notes for day fifteen plus orgmode version Read Chapter 7 and Skim Chapter 8
Fri Oct 11 Lazy Evaluation and Functions, Functions Everywhere! No new notes. No new reading.
Wed Oct 16 Brief Quiz/Midterm Course Evals and Lazy Evaluation Notes for day sixteen plus orgmode version; lazy eval w/environments starter, working version, "finished" version with dynamic scoping, finished version with static scoping, and utility code No new reading.
Fri Oct 18 Lazy Evaluation and Functions, Functions Everywhere! Notes for day seventeen plus orgmode version (continuation of 16) No new reading.
Mon Oct 21 Finishing First-Class Functions Notes for day eighteen plus orgmode version; first-class functions (functions as values) with static scope (finished code) and utility code Read Chapter 8 and Skim Chapter 9 (we may discuss Ch 9 first rather than Ch 8)
Wed Oct 23 QUIZ and (Church or State?) Notes for day nineteen plus orgmode version; state using boxes (starter version), state using boxes (working version), state using boxes (finished version), utility code, and somewhat satisfactory parser No new readings.
Fri Oct 25 Mutable State: Three Flows and Boxes Notes for day twenty (continuing day 19) plus orgmode version; static analysis parse-to-gv and dynamic analysis run-to-gv to produce AST and call trees; you may need GraphViz (dot and neato) to use it! No new readings.
Mon Oct 28 Mutable State: Boxes and Pass-by-Value Notes for day twenty-one plus orgmode version No new readings.
Wed Oct 30 Mutable State: Boxes and Pass-by-Value continued Notes for day twenty-one (continuing day 20) plus orgmode version No new readings.
Fri Nov 1 Mutable State: Variables and Pass-by-Reference No new slides. No new readings.
Mon Nov 4 Mutable State: Variables and Pass-by-Reference Notes for day twenty-three plus orgmode version; pass by reference starter (when desugaring assignment to boxes), working version, finished version, and utility code No new readings.
Wed Nov 6 Exam Review (and Perhaps The Great Recursion Extravaganza!) No new notes. No new readings.
Fri Nov 8 Pass-by-Reference (23 above) and The Great Recursion Extravaganza! Notes for day twenty-four plus orgmode version; lambda calculus Racket starter code and blank version No new readings.
Mon Nov 11 NO CLASSES AT UBC
Wed Nov 13 Lambda Calculus Continued Continuing previous lecture (brief notes plus orgmode version) Read Chapter 9 and Skim Chapter 10
Wed Nov 20 Continuations: motivation and Continuation-Passing Style (skipped a few!) brief notes plus orgmode version; New AST/runtime call tree generator code (and runtime call tree for the QotD program and just for fun AST for the QotD program), web framework examples (and blank version), first pass of continuation-passing style conversion (and blank version) See next set!
Fri Nov 22 Continuations, continuated brief notes plus orgmode version; converting an interpreter to CPS (and blank version) Chapter 14 and Skim this Automatic vs. Manual Stack Management Paper (particularly Sections 1 through 3)
Mon Nov 25 Continuations, continuated Continuing previous notes plus backtracking search via continuations (Prolog's core) (and blank version) No new reading
Wed Nov 27 Continuations, continuated End-of-Term Announcements plus orgmode version No new reading
Fri Nov 29 POSTER SESSION (Be prepared for poster peer reviews!)