CS 4410/6410 -- Compilers Fall 2022 * Basic information ------------------- Professor: Olin Shivers shivers@ccs.neu.edu Office hours: & by appt WVH room 318 Libra Lectures: Mon 11:45-1:25 Ryder 458 Thu 11:45-1:25 Ryder 458 Web page: http://www.ccs.neu.edu/course/cs4410 Piazza: https://piazza.com/class/kt7form1aoq390 Handin server: https://handins.ccs.neu.edu/courses/161 Textbook: Andrew Appel, *Modern Compiler Implementation in ML* NOT textbook: Andrew Appel, *Modern Compiler Implementation in C++* Andrew Appel, *Modern Compiler Implementation in Java* Also useful: *ML for the Working Programmer (2nd edition)*, Larry Paulson ------------------------------------------------------------------------------- * Lectures ---------- 13 weeks / 24 lectures Note: The lecture schedule is apt to change over time as the course progresses, so consult the on-line version at http://www.ccs.neu.edu/classes/cs4410/sched.txt for the up-to-date information. L# Date Topic & due dates -- -------- ----------------- 1 9/8 Thu Intro [Lexer out] 2 9/12 Mon Lexers 3 9/15 Thu Parsing LL 4 9/19 Mon Parsing LL [Parser out] 5 9/22 Thu Parsing LR 6 9/26 Mon Parsing LR 7 9/29 Thu Parsing ML-Yacc 8 10/3 Mon Symbol tables 9 10/6 Thu Semantic analysis 1 [Type-checker out] -- 10/10 Mon -- Columbus Day, no class 10 10/13 Thu Semantic analysis 2 11 10/17 Mon Stack layout & procedure linkage 1 [Frane-analyzer out] 12 10/20 Thu Stack layout & procedure linkage 2 13 10/24 Mon Translating to an IR 1: expressions, booleans for val & control 14 10/27 Thu Translating to an IR 2: control structures, functions [IR-gen out] 15 10/31 Mon Translating to an IR 3: compound data (records & arrays) 16 11/3 Thu Midterm 17 11/7 Mon Generating basic blocks 18 11/10 Thu Instruction selection: maximal munch, BURG, insn grammars [Insn-selection out] 19 11/14 Mon Data-flow analysis 1, Liveness 20 11/17 Thu Register allocation 1 [Liveness out] 21 11/21 Mon Register allocation 2 -- 11/24 Thu -- Thanksgiving, no class [Reg-alloc out] 22 11/28 Mon Register allocation 3 23 12/1 Thu Register allocation 3.5 & Flow analysis 1 24 12/5 Mon -- Final class; TBD ------------------------------------------------------------------------------- * Project schedule ------------------ Project Starts Due days ----------------------- --------- -------------- ---- 1. Lexer Thu 9/8 Mon 9/19 10 pm 12 2. Parser Mon 9/19 Thu 10/6 10 pm 16 3. Static analyser Thu 10/6 Mon 10/17 10 pm 12 4. Frame analyser Mon 10/17 Thu 10/27 10 pm 9 5. IR generator Thu 10/27 Thu 11/10 10 pm 14 6. Instruction selector Thu 11/10 Thu 11/17 10 pm 7 7. Live-variable DFA Thu 11/17 Thu 11/24 10 pm 7 8. Register allocation Thu 11/24 Mon 12/5 10 pm 14 9. Final assembly Mon 12/5 Mon 12/12 10 pm 7 ------------------------------------------------------------------------------- * Important Fall semester dates ------------------------------- ** Class ======== 9/8 Thu First lecture 11/3 Thu Midterm 11/23-27 Wed-Sun Thanksgiving vacation -- no classes 12/5 Mon Last lecture 12/? ? Final exam (TBD) ** University-wide ================== (Available at http://www.northeastern.edu/registrar/calendars.html) 9/5 Mon Labor Day 9/7 Wed First day of classes 9/15 Thu Last day of online class add 9/20 Tue Last day to elect pass/fail (extensible by teacher to 10/28) 9/27 Tue Last day to drop w/o W grade 9/30 Fri Last day to file a final-exam conflict form 10/10 Mon Columbus Day -- no classes 11/11 Fri Veteran's Day -- no classes 11/23 Wed Thanksgiving vacation begins -- no classes 11/28 Mon Thanksgiving vacation ends -- classes resume 12/7 Wed Last day of classes 12/8 Thu Reading day / last day to drop with a W 12/9 Fri First day of exams 12/16 Fri Last day of exams 12/17 Sat Exam makeup day 12/19 Mon Grades due @ 2:00 pm / Winter break begins 12/20 Tue Grades appear on myneu.neu.edu 1/3 - 1/6 Winter intersession classes