CS 4410/6410 -- Compilers Fall 2021 * Basic information ------------------- Professor: Olin Shivers shivers@ccs.neu.edu Office hours: Tuesday 3:00-4:00 & by appt WVH room 318 Libra Lectures: Mon 2:50-4:30 RI 253 Wed 2:50-4:30 RI 253 Web page: http://www.ccs.neu.edu/course/csu4410 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 ---------- 14 weeks / 25 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/csu4410/sched.txt for the up-to-date information. L# Date Topic & due dates -- -------- ----------------- 1 9/8 Wed Intro [Lexer out] 2 9/13 Mon Lexers 3 9/15 Wed Parsing LL 4 9/20 Mon Parsing LL [Parser out] 5 9/22 Wed Parsing LR 6 9/27 Mon Parsing LR 7 9/29 Wed Parsing ML-Yacc 8 10/4 Mon Symbol tables 9 10/6 Wed Semantic analysis 1 [Type-checker out] -- 10/11 Mon Columbus Day - no class 10 10/13 Wed Semantic analysis 2 11 10/18 Mon Stack layout & procedure linkage 1 [Frane-analyzer out] 12 10/20 Wed Stack layout & procedure linkage 2 13 10/25 Mon Translating to an IR 1: expressions, booleans for val & control 14 10/27 Wed Translating to an IR 2: control structures, functions [IR-gen out] 15 11/1 Mon Translating to an IR 3: compound data (records & arrays) 16 11/3 Wed Midterm 17 11/8 Mon Generating basic blocks 18 11/10 Wed Instruction selection: maximal munch, BURG, insn grammars [Insn-selection out] 19 11/15 Mon Data-flow analysis 1, Liveness 20 11/17 Wed Register allocation 1 [Liveness out] 21 11/22 Mon Register allocation 2 -- 11/24 Wed Thanksgiving vacation - no class [Reg-alloc out] 22 11/29 Mon Register allocation 3 23 12/1 Wed Register allocation 3.5 & Flow analysis 1 24 12/6 Mon Flow analysis [Final-assembly out] 25 12/8 Wed GC -- 12/13 Mon [Final-assembly in] ------------------------------------------------------------------------------- * Project schedule ------------------ Project Starts Due days ----------------------- --------- -------------- ---- 1. Lexer Wed 9/8 Mon 9/20 10 pm 12 2. Parser Mon 9/20 Wed 10/6 10 pm 16 3. Static analyser Wed 10/6 Mon 10/18 10 pm 12 4. Frame analyser Mon 10/18 Wed 10/27 10 pm 9 5. IR generator Wed 10/27 Wed 11/10 10 pm 14 6. Instruction selector Wed 11/10 Wed 11/17 10 pm 7 7. Live-variable DFA Wed 11/17 Wed 11/24 10 pm 7 8. Register allocation Wed 11/24 Mon 12/6 10 pm 14 9. Final assembly Mon 12/6 Mon 12/13 10 pm 7 ------------------------------------------------------------------------------- * Important Fall semester dates ------------------------------- ** Class ======== 9/8 Wed First lecture 11/3 Wed Midterm 11/24-28 Wed-Sun Thanksgiving vacation -- no classes 12/8 Wed Last lecture 12/? ? Final exam (TBD) ** University-wide ================== (Available at http://www.northeastern.edu/registrar/calendars.html) 9/6 Mon Labor Day 9/8 Wed First day of classes 9/16 Thu Last day of online class add 9/21 Tue Last day to elect pass/fail (extensible by teacher to 10/29) 9/28 Tue Last day to drop w/o W grade 10/1 Fri Last day to file a final-exam conflict form 10/11 Mon Columbus Day -- no classes 11/11 Mon Veteran's Day -- no classes 11/24 Wed Thanksgiving vacation begins -- no classes 11/29 Mon Thanksgiving vacation ends -- classes resume 12/8 Wed Last day of classes 12/9 Thu Reading day / last day to drop with a W 12/10 Fri First day of exams 12/17 Fri Last day of exams 12/18 Sat Exam makeup day 12/20 Mon Grades due @ 2:00 pm / Winter break begins 12/21 Tue Grades appear on myneu.neu.edu