Compilers: Principles, Techniques, and Tools

Free Course in Automata Theory

I have prepared a course in automata theory (finite automata, context-free grammars, decidability, and intractability), and it begins April 23, 2012. You can learn more about the course at Several other courses will start at the same time, including Alex Aiken on Compilers, Mike Genesereth's Logic course, Nick Parlante on computing for everyman/woman, and a repeat of ANdrew Ng's Machine-Learning class. You can learn about each of these courses at

2006 Course on Code Optimization

In the winter of 2006, I (co)taught, and created slides for CS243, Stanford's second compiler course, covering code optimization. Wei Li, head of the compiler division at Intel co-taught the course with me, and many of the slides in the set provided are his. Ben Livshits and Hasan Imam were the TA's, and they too provided materials; especially the lectures on JOEQ and introductory motivation are Ben's, and both contributed to exams and solutions.

Some Old Notes in PDF

Jeffrey D. Ullman
ullman @
650-494-8016 (home)
650-725-2588 (FAX)