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


Course Information

Meetings: MWF 12:30-1:20, GUG 218.
Instructor: Hal Perkins, CSE 548, perkins[at]cs, office hours: MT 2-3 in the CSE 006 lab.
TA: Laura Marshall, lmarsh16[at]cs, office hours W 1:30-2:30, Th 2-3 in the CSE 006 lab.


Class discussion list
Class email list archives


Dropbox for assignment and project submission


Project Overview
Starter code (zip file)
Setting up a svn repository
JFlex documentation
CUP documentation
Intel processor documentation

Project phases. Dates for future parts are tentative, but should give an idea of what to expect.


Homework 1. Due Friday, Jan. 16, at the beginning of class.
Homework 2. Due Friday, Jan. 30, at the beginning of class.
Homework 3 (short). Due Monday, Feb. 9, at the beginning of class.


A list of final exam topics
This quarter's final:   exam   sample solution
Some old final exams:  au08  wi08  au07  au02 (solution)  au98  sp98

A list of midterm topics.
This quarter's midterm:  exam   sample solution
Some old midterms:  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. 5: Course introduction. Slides (1-up, 6-up)
2. Jan. 7: Overview (concl.); Regular expressions and scanners (intro). Read ch. 1, secs. 2.1-2.4. Slides (1-up, 6-up)
3. Jan. 9: Regular expressions and scanners (cont.)
4. Jan. 12: Scanners (concl.)
5. Jan. 14: Intro to parsing. Read sec. 3.1-3.2. Slides (1-up, 6-up, slides with scribbles from lecture)
6. Jan. 16: LR (bottom-up) parsing. Read sec. 3.4-3.5 and computation of First and Follow sets in Sec. 3.3.4. Slides (1-up, 6-up).
X. Jan. 19: No class. MLK day.
7. Jan. 21: LR parsing (cont.). (slides with scribbles from lecture)
8. Jan. 23: LR parser construction. Slides (1-up, 6-up)
9. Jan. 26: LR parsers (slides with scribbles from lecture)
10. Jan. 28: MiniJava parser and AST. Slides (1-up, 6-up)
11. Jan. 30: LL (top-down) parsing. Read sec. 3.3. Slides (1-up, 6-up)
12. Feb. 2: Top-down parsing.
13. Feb. 4: Semantics and type checking. Slides (1-up, 6-up)
14. Feb. 6: Semantics and type checking for MiniJava (1-up, 6-up)
15. Feb. 9: Type checking details; Interpreters (1-up, 6-up)
16.. Feb. 11: Midterm review
17. Feb. 13: Midterm in class.
X. Feb. 16: No class. Presidents' day.
18. Feb. 18: MiniJava IL generation (1-up, 6-up)
19. Feb. 20: IR codegen
20. Feb. 23: Interlude: visitor pattern (1-up, 6-up)
21. Feb. 25: x86 lite (1-up, 6-up)
22. Feb. 27: x86, Minijava x86 code generation (intro) (1-up, 6-up)
23. Mar. 2: Minijava codegen
24. Mar. 4: Minijava codegen
25. Mar. 6: Instruction selection and register allocation (1-up, 6-up)
26. Mar. 9: Optimization (1-up, 6-up)
27. Mar. 11: Optimization
28. Mar. 13: Dataflow analysis (1-up, 6-up)
X. Mar. 18 (Wed.): Review, afternoon, CSE 403
X. Mar. 19 (Thur.): Final exam, 10:30-12:20 am, EE 045. Contact Perkins if you need to take the exam at the original time of 8:30..

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]