Lectures


Date Topic and Notes Homework Due This Class Reading For This Class
Tue Jan 23 Course Overview
Thu Jan 25 History of PL
Functional Programming
Required:
  • Chapters 10.1 - 10.3, 10.5 - 10.8, 13.2.4
Optional:
Tue Jan 30 Functional Programming
Overview of Cool
  1. PA1c (Rosetta Checkpoint) Due
Required: Optional:
Thu Feb 01 Lexical Analysis & Finite Automata (Part 1)
  1. PA1 (Rosetta) Due
Required:
  • Chapters 2.1 - 2.2
On-Line:
  • Weimer's Udacity CS 262 — Programming Languages — Lesson 1
    • "Breaking up Strings" to "Hyphenation". This starts around Video 7 on the YouTube list and goes to about Video 35, but note that each video is about one minute long. (This structure may not be the most convenient, but the YouTube list does allow you to access the material without signing up or paying anything.)
  • Zeller's Udacity CS 259 — Software Debugging — Lesson 3
    • Simplifying Failures, Implementing the Strategy, Delta Debugging. This starts around Video 107 on the YouTube list. (If you can't find these exact names, watch the videos for comprehension until you're confident that you've covered similar topics.)
Optional:
Tue Feb 06 More Finite Automata (Part 2) On-Line:
Thu Feb 08 Context-Free Grammars, Parsing, Derivations, Ambiguity
  1. RS1 Recommended
Required: On-Line:
Tue Feb 13 Top-Down Parsing, History, Earley
(Earley Handout)
  1. PA2 (Lexing) Due
  2. (Start PA3 early; look at the Midterm schedule to see why.)
Required:
  • Chapters 2.3 - 2.3.2
On-Line: Optional:
Thu Feb 15 Earley Parsing and Examples
  1. RS2 Recommended
Required: On-Line: Optional:
Tue Feb 20 Code Generation (Part 1)
  1. RS3 Recommended
Required:
Thu Feb 22 Code Generation (Part 2)
  1. PA3 now due Sat Feb 24
Fri Feb 23 no class
  1. Midterm 1 Due 11:50pm
Tue Feb 27 Scoping & Types
  1. PA4t (Semantics Test-Driven) Due
Required:
  • Chapters 3.1 - 3.6
On-Line: Optional:
Thu Feb 29 Type Checking & Static Semantics
  1. PA4c (Semantics Checkpoint) Recommended (leaving PA4 to do over Spring Break is unwise)
Required:
  • Chapters 4 - 4.1, 7 - 7.1
Optional:
Tue Mar 05 More Static Semantics
  1. PA4c (Semantics Checkpoint) Due
Required:
  • Chapters 7.2 - 7.3
Optional:
Thu Mar 07 Cool Type Checking, Runtime Organization
  1. RS4 Recommended
Required:
  • Chapters 8.1 - 8.3
Optional:
Tue Mar 12 - Thu Mar 21 no class, Spring Break
Tue Mar 26 Multi-Language Projects
  1. PA4 (Semantics) Now Due Mar 30
Required: Optional:
Thu Mar 28 Operational Semantics Required: Optional:
Tue Apr 02 Introduction to Game Theory
  1. PA5t (Interpreter Test-Driven) Due
Optional:
Thu Apr 04 Basic Blocks, Local Optimizations
  1. RS5 Recommended
Required: On-Line:
Tue Apr 09 Dataflow Analysis, Global Optimizations Required:
Thu Apr 11 Automatic Memory Management
Required:
  • Chapter 7.7
Optional:
Tue Apr 16 special class (Weimer away at ICSE)
Thu Apr 18 special class (Weimer away at ICSE)
  1. RS7 Recommended
  2. PA5c (Interpreter Checkpoint) Due
Tue Apr 23 Exceptions and Error Handling Required:
  • Chapter 8.5
Thu Apr 25 Debuggers and Profilers Required: On-Line:
Tue Apr 30 No class — professor illness
Thu May 02 Linking, Loading and Shared Libraries Required: Optional:
Sat May 04 no class
  1. Midterm 2 Due 11:50pm
Tue May 07 Quantum Computing and Romance Novels Required: On-Line:
Wed May 08 no class
  1. PA5 (Interpreter) Due 11:50pm
  2. Late Electronic/PA Submissions Due 11:50pm