CSE logo University of Washington Computer Science & Engineering
 CSE 401, Au '06: Introduction to Compiler Construction
  CSE Home   About Us    Search    Contact Info 

 Reading Schedule
 Lexical Analysis
 Syntactic Analysis
 Semantic Analysis
 Intermediate Representation
 Code Generation
 Runtime Issues
Getting Started
 Project Description
 Setting Up CVS
 Project Code
 Homework #1 (due 10/9)
 Project #1 (due 10/15)
 Homework #2 (due 10/23)
 Project #2 (due 10/29)
   MiniJava Syntax
 Project #3 (due 11/14)
 Project #4 (due 11/28)
 Project #5 (due 12/11, 1pm)
Time: MWF 12:30-1:20
Place: EE 037
Office Hours

Hal Perkins
    email: perkins

MW   3:45-4:30. CSE 548
TA:  Matt Kehrt 
    email: mkehrt
ugrad lab, CSE006
ugrad lab, CSE006


Project: The project involves turning a toy compiler into an (almost) real one. You will work in teams of 2. Each project milestone will be graded on correctness, coding style, and completeness of test cases. See assignment links for details.


  • Homework: 15%
  • Midterm: 15%
  • Final: 25%
  • Course project: 40%
  • Class participation: 5%
  • (relative weight tentative)

Late Policy

  • Each student has three late days to use over the course of the quarter, without penalty. Beyond that, 25% will be deducted from an assignment's grade for each calendar day it is late. Late days are for you to use to manage unavoidable conflicts in your own schedule; excuses for late work beyond the three late days will not be accepted barring extrordinary circumstances beyond your control (serious illness, etc.).

Text: Required: Cooper & Torczon, Engineering a Compiler. Also useful are Aho, Sethi, & Ullman, Compilers: Principles, Techniques, and Tools (new edition 2007, older ed. 1986), and Appel, Modern Compiler Implementation in Java (2nd ed., source of the MiniJava project)

Catalog Description: Fundamentals of compilers and interpreters; symbol tables, lexical analysis, syntax analysis, semantic analysis, code generation, and optimization for general purpose programming languages. No credit to students who have taken 413.

Exams: The final exam is December 14. The midterm is tentatively scheduled for November 3 (any change to this date will be announced well in advance).

Academic Conduct

Cheating is a very serious offense. If you are caught cheating, you can expect initiation of a cheating case in the University system. Cheating is an insult to the instructor, to the department and major program, to your colleagues, and most importantly, to you. If you feel that you are having a problem with the material, or don't have time to finish an assignment, or have any number of other reasons to cheat, then talk with the instructor. Copying others' work, from this or previous quarters is not the solution.

To avoid creating situations where copying can arise, never e-mail or post your solution files. You can post general questions about interpretation and tools but limit your comments to these categories. If in doubt about what might constitute cheating, send the instructor email describing the situation. For more details see the Academic Misconduct web page.

Prerequisites: CSE 322; CSE 326; CSE 341; CSE 378.
Credits: 3

Portions of the CSE 401 Web may be reprinted or adapted for academic nonprofit purposes, providing the source is accurately quoted and duly credited. The CSE 401 Web: 1993-2006, Department of Computer Science and Engineering, University of Washington.

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