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

 Introduction Slides
 Lexing - Part1
 Lexing - Part2
 Lexing - Part3
 NFA-> DFA Example
 Syntactic Analysis
 Semantic Analysis
 Intermediate Representation
 Intermediate Code Gen (pt 1-4)
 scopes/parm passing example
 vtable example
 Code Generation
 Runtime Systems
 Binary Optimization
 Linking & Parallelism
 Class Email Archive
 Message Board
 Anonymous Feedback
Getting Started
 Project Description
 Setting Up SVN
 Project Code
 x86 Info
 Midterm Topics (2/8)
 Final Topics (3/19)
 Reading Schedule
 Homework #1 (Due 1/16)
 Homework #2 (Due 1/30)
 Project Partners (Due 1/16)
 Project #1 (Due 1/24)
   MiniJava Lexical Spec
 Project #2 (Due 2/4)
   MiniJava Syntax Spec
 Project #3 (Due 2/15)
 Project #4 (Due 2/28)
 Project #5 (Due 3/13)

Time:MWF 11:30-12:20
Place:EEB 045

Instructors:Ruth Anderson (rea)
 Office hours: Wednesday 12:30-1:30pm, or by appointment, CSE 360
 Mark Roberts (markro)
 Office hours: Monday 12:30-1:30pm, or by appointment, CSE 346

TA:Jonathan Beall (jibb)
 Office hours: Tuesday 10:30-11:30am in CSE 218,
 Thursday 1:30-2:30pm in CSE 216


Required Text: Cooper & Torczon, Engineering a Compiler. Errata
Also useful: Aho, Sethi, & Ullman, Compilers: Principles, Techniques, and Tools.

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.
Prerequisites: CSE 322; CSE 326; CSE 341; CSE 378.
Credits: 3


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

Course Project

The course 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.


The midterm will take place in class on Friday, February 8, 2008. The final exam is 2:30-4:20 p.m. Wednesday, Mar. 19, 2008.

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. Assignments are due at the start of class, unless otherwise noted. 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.

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 and will be considered cheating.

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.

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-2007, 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 rea]