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


Course Information

Lectures: MWF 12:30-1:20, EE 037
Sections: Th 1:30 (AA) Loew 216, Th 2:30 (AB) Loew 202.
Instructor: Hal Perkins, CSE 548, perkins[at]cs, office hours MW 2-3, CSE 002; plus in my regular office when I'm there and the door is open.
TA: Hadi Esmaeilzadeh, hadianeh[at]uw, office hours Tue 2-3, Fri 3-4, CSE 002.


Class discussion list
Class email list archives


Dropbox for assignment and project submission

Compiler Project


Homework 1. Due Wed., Oct. 13, either on paper at the beginning of class, or online by 11 pm.
Homework 2. Due Mon., Oct. 25, either on paper at the beginning of class, or online by 11 pm.
Homework 3. Due Wed. Nov. 3, either on paper at the beginning of class or online by 11 pm. No late assignments accepted after 11 pm, Nov. 3 so we can hand out solutions in sections Nov. 4 before the midterm on Nov. 5.


A list of final exam topics
This quarter's final: exam sample solution
Some old final exams:  wi10 (solution) wi09 (solutionau08  wi08  au07

A list of midterm topics.
This quarter's midterm: exam sample solution
Some old midterms: 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.

Class Materials

Schedule to be updated as the quarter progresses. Slides will be posted normally no later than the evening before class and links will likely be broken before then. Readings should be done before the associated class.

1. Sept. 29: Course introduction. slides
S1. Sept. 30: no section
2. Oct. 1: Intro & history (concl.)
3. Oct. 4: Regular expressions and scanners (intro). Read ch. 1, secs. 2.1-2.4. slides
4. Oct. 6: Scanners (concl.)
S2. Oct. 7: Project, scanners and regular expressions
5. Oct. 8: Intro to parsing. Read sec. 3.1-3.2. slides
6. Oct. 11: LR (bottom-up) parsing start. Read sec. 3.4. slides
7. Oct. 13: LR parsing (cont.)
S3. Oct. 14: Parsing
8. Oct. 15: LR parsing (concl.);
9. Oct. 18: LR conflicts and table construction. Read Sec. 3.5 and computation of First and Follow sets in Sec. 3.3.4. slides
10. Oct. 20: LR construction extended example
S4. Oct. 21: First/follow sets, parsers
11. Oct. 22: IRs slides; AST and visitor pattern slides
12. Oct. 25: AST and visitor pattern slides;
13. Oct. 27: Visitor pattern (damage control from Monday); LL parsing & recursive descent. slides
S5. Oct. 28: No sections this week.
14. Oct. 29: LL grammars and parsing
15. Nov. 1: Static semantics and type checking slides
16. Nov. 3: Attribute gramars; symbol tables (cont.)
S6. Nov. 4: Midterm review
17. Nov. 5: Midterm in class
18. Nov. 8: Types, semantics wrapup.
19. Nov. 10: x86 overview slides
X. Nov. 11: no section, Veteran's Day holiday
20. Nov. 12: x86
21. Nov. 15: x86 function calling conventions
22. Nov. 17: Code shape I - basic constructs. slides
S7. Nov. 18: No sections today - Football Thursday. Extra office hours in lab during section times.
23. Nov. 19: Code shape
24. Nov. 22: Code shape II - objects and dynamic dispatch slides
25. Nov. 24: Class canceled - snow happened in Seattle
X. Nov. 25-26: No section or lecture. Many turkeys meet their demise.
26. Nov. 29: Running minijava - project details slides
27. Dec. 1: Running minijava; Backend overview  slides
S8. Dec. 2: Project, misc. topics.
28. Dec. 3: Instruction selection and scheduling
29. Dec. 6: Register allocation by graph coloring
30. Dec. 8: Optimization survey   slides
S9. Dec. 9: Wrapup and review
32. Dec. 10: Compiling dynamic langauges  slides

Dec. 15 (Wed): Review session, 4:30, CSE 403
Dec. 16 (Thur): Final exam, 8:30-10:20 am, EE 045.

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]