CSE logo University of Washington Computer Science & Engineering
 CSE 401 Introduction to Compiler Construction - Autumn 2011
  CSE Home   About Us    Search    Contact Info 


Course Information

Lectures: MWF 12:30-1:20, More 230
Sections: Th 8:30 (AA), Th 9:30 (AB) More 221
Instructor: Hal Perkins, CSE 548, perkins[at]cs, office hours Wed. 3:30-4:30; plus when I'm in my office and the door is open.
TAs: Sam Fout and Evan Herbst. Office hours: Herbst, Mon. 4:30-5:00+ and Thur. 2:30-3:00+, both in CSE 216; Fout: Tue. 12-1+, CSE 218.


Class discussion list
Class email list archives


Dropbox for assignment and project submission

Compiler Project


Homework 1. Due online Mon., Oct. 10 by 11 pm.
Homework 2. Due online, Thur. Oct. 20 by 11 pm.
Homework 3. Due online, Thur. Oct. 27 by 11 pm.


This quarter's final:  exam  sample solution
Some old final exams: au10 (solution)  wi10 (solution) wi09 (solutionau08  wi08  au07

This quarter's midterm:  exam  sample solution
Some old midterms: au10 (solution) wi10 (solution)  wi09 (solution)   au08   wi08 (solution)   au07   sp99   sp98 (solution notes)

In addition, old CSEP501 exams (the PMP compiler course) might also be useful for studying.

Topic lists to be supplied later

Class Materials

Tentative schedule based on last year to be updated as the quarter progresses. Links will be broken until new slides are posted for this quarter, generally the evening before class. Readings should be done before the associated class.

1. Sept. 28: Course introduction. slides
S1. Sept. 29: no section
2. Sept. 30: Intro (concl.); Regular expressions and scanners (intro). Read ch. 1, secs. 2.1-2.4. slides
3. Oct. 3: Parsing and scanning
4. Oct. 5: Regular expressions FAs (concl.)
S2. Oct. 6: Project, scanners and regular expressions. slides
5. Oct. 7: Scanner implementations
6. Oct. 10: Intro to parsing. Read sec. 3.1-3.2. slides
7. Oct. 12: LR (bottom-up) parsing start. Read sec. 3.4. slides
S3. Oct. 13: Context-free grammars, parsing. slides
8. Oct. 14: LR parsing
9. Oct. 17: LR table construction. Read Sec. 3.5 slides
10. Oct. 19: LR conflicts, First/follow sets. Read sec. 3.3.4
S4. Oct. 20: ASTs and visitor pattern. slides 1, slides 2
11. Oct. 21: LL parsing & recursive descent. slides
12. Oct. 24: IRs slides; Static semantics and type checking (start) slides
13. Oct. 26: Semantics and type checking
S5. Oct. 27: Grammars, homework, project. slides
14. Oct. 28: Attribute grammars
15. Oct. 31: Symbol tables and representation of types
16. Nov. 2: x86 overview slides
S6. Nov. 3: Midterm review slides
17. Nov. 4: Midterm in class
18. Nov. 7: Code shape I - basic constructs. slides
19. Nov. 9: Code shape II - objects and dynamic dispatch slides
S7. Nov. 10: multiple inheritance and function overloading (no slides)
20. Nov. 11: No class - Veteran's day holiday
21. Nov. 14: Dynamic dispatch and objects implementation
22. Nov. 16: x86-64 slides
S8. Nov. 17: no sections today
23. Nov. 18: x86-64 and codegen for the project
24. Nov. 21: Optimization overview   slides
25. Nov. 23: Optimization (concl.); dataflow analysis
X. Nov. 24-25: No section or lecture. Much tofu consumed in Seattle (and turkeys elsewhere)
26. Nov. 28: Dataflow equations slides
27. Nov. 30: Dataflow (concl.) Backend overview (start) slides
S9. Dec. 1: SSA. slides
28. Dec. 2: Instruction selection
29. Dec. 5: Instruction scheduling; course evaluations
30. Dec. 7: Register allocation by graph coloring; garbage collection slides
S10. Dec. 8: Concurrency and optimization. slides
32. Dec. 9: Compiling dynamic langauges  slides

Dec. 14 (Wed): Review session, 4:30, CSE 403
Dec. 15 (Thur): Final exam, 8:30-10:20 am, regular classroom.

CSE logo Computer Science & Engineering
University of Washington
Box 352350
Seattle, WA  98195-2350
(206) 543-1695 voice, (206) 543-2969 FAX
[comments to Hal Perkins]