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)




Introduction
     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




Syntax
     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




Semantics
     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




Names
     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
     Wed. Nov. 1 Type systems, type checking PLP 7.0–7.2
     Mon. Nov. 6 Polymorphism
Guest lecture by Prof. Chen Ding
(Prof. Scott out of town)
US CITIZENS: DON'T FORGET TO VOTE TOMORROW
PLP 7.3–7.5; CS 7.3.2




Composite Types
     Wed. Nov. 8 Records and arrays
Guest lecture by Prof. Sreepathi Pai
(Prof. Scott out of town)
PLP 8.0–8.4 A4 due tonight;
A5: templates
     Mon. Nov. 13 Pointers, references, and dynamic storage management PLP 8.5




Concurrency
     Wed. Nov. 15 Threads PLP 13.0–13.2.3, 9.5, 13.2.4 T5 due
     Mon. Nov. 20 Synchronization PLP 13.3
     Wed. Nov. 22 Language mechanisms PLP 13.4 A5 due last night




     (Thur. Nov. 23 Thanksgiving)




Subroutines
     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)




Objects
     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: 17 October 2017 / Michael Scott's email address