CS 375: Compilers

CS 375 covers the design and construction of compilers for programming languages. Each student writes a compiler for most of Pascal; code is generated for a real processor and is run on hardware.

This course has a heavy programming workload, especially in summer. Students planning to take the course in summer should expect to dedicate their lives to this course for five weeks; do not try to work while taking CS 375 in summer.

Summer 2017: 2:30 - 4:00 in GDC 1.304, Unique No. 87055.

Guns are prohibited in the instructor's office. I do not want any guns to be brought to my class. I will not write recommendations for anyone who brings a gun to campus.

Instructor: Gordon S. Novak Jr., GDC 3.824; Office Hours: 4:00 - 5:00 PM, or any time my door is open.



Optional Text: Aho, Lam, Sethi, & Ullman, Compilers: Principles, Techniques, and Tools

iClicker: Each student is required to buy/rent an iClicker (any version of iClicker device; not iClicker GO app). This will be used for attendance and to reinforce and practice with the class material. Two iClicker points are given just for voting, and an additional point is given for a correct answer. Most iClicker questions and answers are online at Clicker Questions, and it is okay to review them in advance. The clicker scores will be converted to a grade by making the highest student score at least 108 and linearly scaling other scores; this gives some extra points to account for minor illness, forgotten or malfunctioning clicker, etc. Bringing another student's clicker to class is considered to be cheating.

Register your iClicker on Canvas.

Grades on Canvas

Lecture Notes: Available in printed form in GSB 3.136.
Online by Contents or Index or PDF.     Table of Chomsky Language Hierarchy


Follow CS 375 Discussions on Piazza

Programming assignments may be written in C / lex / yacc or in Lisp (if you are already good at Lisp). All programming assignments must be your own individual work. Program files are provided, in the directory /projects/cs375/ or in the FTP directory for Program Files, ftp://ftp.cs.utexas.edu/pub/novak/cs375/ or http://www.cs.utexas.edu/users/novak/cs375/ for use with the assignments. The files are described by Program File Descriptions. It is legal to use any of these files as part of your programs.

Turn in the Programming Assignments through Canvas

Testing and Debugging


X86 References: We use the AT&T / Gnu / GAS Syntax

ISO 7185 Pascal Standard (pdf)

Microcontrollers and UT Foundry

Microcontrollers (pdf)

Song: "God Wrote in Lisp", Lyrics by Bob Kanefsky, sung by Julia Ecklar.

Quotes from Alan Perlis

Program Grading

Midterm Study Guide and Example Midterm Questions and Answers and Midterm Flash Cards

Final Exam Study Guide and Example Final Exam Questions and Answers and Vocabulary Flash Cards

Gordon S. Novak Jr.