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


Course Information

Lectures: MWF 9:30-10:20, EE 037
Sections: Th 8:30 (AA), Th 9:30 (AB), both in MGH 287
Instructor: Hal Perkins, CSE 548, perkins[at]cs, office hours Mon. 2-3, CSE 006; plus in my regular office when I'm there.
TAs: Jonathan Beall, jibb[at]cs, office hours Tue. 2:30-3:30, CSE 006; Alexis Cheng, ethidda[at]cs, office hours Fri. 1-2, CSE 006.


Class discussion list
Class email list archives


Dropbox for assignment and project submission

Compiler Project


Homework 1. Due Friday, Jan. 15, either on paper at the beginning of class, or online by 6 pm.
Homework 2. Due Friday, Jan. 29, either on paper at the beginning of class, or online by 6 pm.
Homework 3. Due Tuesday, Feb. 16 by 11 pm. No late assignments accepted after 11 pm, Wed. Feb 17 so we can hand out solutions in sections Feb. 18 before the midterm on Feb. 19.


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

A list of midterm topics.
This quarter's midterm: exam sample solution
Some old midterms: 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. Readings should be done before the associated class.

1. Jan. 4: Course introduction. slides
2. Jan. 6: Intro & history (concl.);
S. Jan. 7: no section
3. Jan. 8: Regular expressions and scanners (intro). Read ch. 1, secs. 2.1-2.4. slides
4. Jan. 11: Scanners (concl.) annotated slides
5. Jan. 13: Intro to parsing. Read sec. 3.1-3.2. slides annotated slides
S. Jan. 14: Section
6. Jan. 15: LR (bottom-up) parsing start. Read sec. 3.4. slides annotated slides
X. Jan. 18: MLK holiday, no classes
7. Jan. 20: LR parsing (cont.)
S. Jan. 21: Section: scanner slides
8. Jan. 22: LR parsing (concl.);
9. Jan. 25: LR construction. Read Sec. 3.5 and computation of First and Follow sets in Sec. 3.3.4. slides annotated slides
10. Jan. 27: LR conflicts & first/follow sets; IRs (intro). slides annotated slides
S. Jan. 28: Section: parser slides
11. Jan. 29: IRs, AST and visitor pattern (intro). slides annotated slides
12. Feb. 1: Visitor pattern
13. Feb. 3: LL parsing & recursive descent. slides annotated slides
S. Feb. 4: Section: AST slides
14. Feb. 5: LL parsing (concl.); Static semantics and type checking (start). slides annotated slides
15. Feb. 8: Static semantics and type checking
16. Feb. 10: Attribute gramars; symbol tables (cont.)
S. Feb. 11: Section: semantics and symbol tables
17. Feb. 12: Types, semantics wrapup.
X. Feb. 15: Presidents Day, no classes
18. Feb. 17: x86 overview slides; midterm topics
S. Feb. 18: Section: midterm review
19. Feb. 19: Midterm in class.
20. Feb. 22: x86 overview; function calling conventions (concl.) annotated slides
21. Feb. 24: Code shape I - basic constructs. slides annotated slides
S. Feb. 25: Section: Code generation for the project. slides
22. Feb. 26: Code shape I - arrays; Code Shape II - objects (intro). slides
23. Mar. 1: Code shape II - objects and dynamic dispatch
24. Mar. 3: Code shape II - code generation for objects annotated slides
25. Mar. 5: Backend overview slides annotated slides
26. Mar. 8: Backend (concl.); Optimization survey slides annotated slides
27. Mar. 10: Optimization
28. Mar. 12: Concurrency, memory models, and optimization slides

Mar. 16 (Tue): Review session, 4:30, CSE 403
Mar. 17 (Wed): Final exam, 8:30-10:20 am, EE 037.

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]