CSE401: Winter 2014: Introduction to Compiler Construction

Robert R. Henry


  1. CSE401 Administration
  2. GoPost Discussion Board
  3. Course Dropbox

Lecture and Section Material

  1. Lecture Syllabus written after the fact at the end of the quarter.
  2. Today's Electic Excitement, updated daily


  1. Text Book Readings

Old Exams

  1. CSE401 2001 Midterm Questions
  2. CSE401 2001 Midterm Answers


  1. Project Setup and Git


  1. Main Programming Project
  2. Assignment 1: Refresh your memory on Unit Conversion
  3. Assignment 2: Write Mini Java Test Programs
  4. Assignment 3: Scanner for Mini Java
  5. Assignment 4: Parser and AST Builder for Mini Java
  6. Assignment 5: Expressions and Function Calls
  7. Assignment 6: Symbol Gathering (Classes, Methods and Variables)
  8. Assignment 7: Type Checking
  9. Assignment 8: Storage and Dispatch
  10. Assignment 9: Statement Counting
  11. Assignment 10: Doubles
  12. Assignment 11: Face to Face and Project writeup

The Tera/Cray MTA executing DGEMV, compared to Brand X super computer MTA-DGEMV.pdf. Which machine uses a CPU-side data cache?

An Inefficient Program, shown as an example of something that could be optimized CSE401-Inefficient-Program.pdf.

A computation (expression) tree and a bunch of instruction patterns for use with the example of Buttom Up Rewrite System (BURS), instruction selection and dynamic programming codegentrees.pdf.

When I finished my Master's and PhD some years ago, I wrote up a bunch of questions about what I wanted in a job in the tech industry. These musings have been passed around before at UW CSE, so here they are again. I'm happy to provide advice, (ir)relevant as it maybe!

Please visit here for basic course information and links to the webs for earlier quarters.

Privacy policy and terms of use