Welcome to CS 164!

This course is called Compilers, and is a course on implementing compilers, which are programs which convert program source code to code that can run directly on a computer. Compilers are a tremendously interesting and fun topic, and can teach you a great deal about programming and about how computers work. We hope you enjoy this subject as much as we do!

This book serves as the official course notes, so that lectures are less of a brain dump of details and more an opportunity to interactively go through course topics, answer questions, and get you thinking about compilers. In addition, we will be posting most of the course-related content in these pages, including:

  • the course syllabus (which you should read as soon as possible!)
  • administrative details
  • instructions on how to set up your computer with the course software
  • assignments
  • coding notes and tips

and anything else we consider useful.

Your feedback on these notes will be very helpful to us in improving them, so please let us know if anything is hard to understand or if something that should be here isn't.

Course-related material we won't post here includes:

  • the PDF of the textbook
  • lecture slides
  • assignment code zip files
  • some administrative information

These will be posted on the course Canvas page in the Modules section.