Schedule for CSC 2/454, Fall 2017 (Tentative)

The following is my best guess as to the schedule for this fall.
I will do my best to keep it up to date if things change.
I encourage you to check back here on a regular basis. 

PLP refers to the textbook.  CS refers to the companion site

Click on the unit name to see my lecture notes.

Unit Topics Reading (to be completed
before class)
Assignments (handed
out or [where indicated] due)

     Wed. Aug. 30 Introduction PLP 1.0–1.5 T0: administration (see Blackboard);
A0: Unix tools
     (Mon. Sept. 5 Labor Day)
     Wed. Sept. 6 Structure of a compiler PLP 1.6–1.7 T0 due;
A1: comparing languages
T1 due Friday evening

     Mon. Sept. 11 Review of scanning and BNF (DFA construction) PLP 2.0–2.2; CS 2.4.0–2.4.1
     Wed. Sept. 13 Top-down and bottom-up parsing (example) PLP 2.3.0–2.3.2; CS 2.3.5 (pp. 1–6)
     Mon. Sept. 18 Error recovery, table-driven LL(1) parsing PLP 2.3.3; CS 2.3.5 (pp. 10–12) (for A2) A1 due last night;
A2: syntax error recovery

     Wed. Sept. 20 Attribute grammars, action routines PLP 4.0–4.5 T2 due
     Mon. Sept. 25 Decorating a syntax tree
PLP 4.6–4.7, 15.0–15.3

Functional programming
     Wed. Sept. 27 Intro to OCaml
PLP 11.0–11.2, 7.2.4, 8.6, 11.4
     Mon. Oct. 2 Evaluation order, higher-order functions PLP 11.5–11.6, 11.8–11.9 A2 due last night;
A3: translation (in OCaml)

Compiler Internals
     Wed. Oct. 4 Intermediate representations
Guest lecture by Prof. John Criswell
(Prof. Scott out of town)
PLP 15.1–15.2; CS 15.2.1 T3 due
(Mon. Oct. 9 Fall Break)

Scripting languages
     Wed. Oct. 11 Overview, Perl
PLP 14.0–14.1, 14.2.4 (Perl), 14.4.2, 14.4.3

     Mon. Oct. 16 Binding time, scope rules PLP 3.0–3.4
     Wed. Oct. 18 Binding rules, separate compilation PLP 3.5–3.9; CS 3.8 A3 due last night

     Mon. Oct. 23 Midterm Exam A4: cross-indexer

Control flow
     Wed. Oct. 25 Expressions, sequencing, and selection
PLP 6.0–6.4 T4 due tonight
     Mon. Oct. 30 Iteration and recursion PLP 6.5–6.8

Type Systems and Composite Types
     Wed. Nov. 1 Type systems, type checking PLP 7.0–7.2
     Mon. Nov. 6 Records and arrays
Guest lecture by Prof. Sreepathi Pai
(Prof. Scott out of town)
link to lecture slides
PLP 8.0–8.4
     Wed. Nov. 8 Pointers, references, and dynamic storage management
Guest lecture by Prof. Chen Ding
(Prof. Scott out of town)
PLP 8.5 A5: tombstones;
A4 due Friday night
     Mon. Nov. 13 (Catch-up) (no new reading)
     Wed. Nov. 15 Polymorphism PLP 7.3–7.5; CS 7.3.2 T5 due

     Mon. Nov. 20 Threads and Synchronization PLP 13.0–13.2.3, 9.5, 13.2.4–13.3
     Wed. Nov. 22 Language mechanisms PLP 13.4 A5 due at noon

     (Thur. Nov. 23 Thanksgiving)

     Mon. Nov. 27 Stack management, parameter passing PLP 9.0–9.3 A6: concurrency (in Java)
     Wed. Nov. 29 Exceptions, events PLP 9.4.3, 9.6 T6 due
     Mon. Dec. 4 TBA
Guest lecture by Prof. Sreepathi Pai
(Prof. Scott out of town)
(no reading assigned)

     Wed. Dec. 6 Review and implementation
PLEASE be sure to fill out your
on-line course evaluation

PLP Chapter 10 (skim all of it; read 10.4 carefully)
     Mon. Dec. 11 Multiple inheritance; Smalltalk, scripting objects CS 10.5, 10.6.1; PLP 14.4.4
     Wed. Dec. 13 Last day of class.  Final exam prep (if you bring questions).  Perhaps an extra topic (virtual machines?)
(no reading assigned)

     Fri. Dec. 15 A6 due
     Tue. Dec. 19 Final exam, 12:30–3:30pm

Back to the course home page

Last Change: 05 December 2019 / Michael Scott's email address