> CS143: Introduction to Compilers
Lecture notes by Prof. Aiken on Operational Semantics Posted
June 7, 2015

The lecture notes by Prof. Aiken on Operational Semantics are released.


Two Sample Finals and Hints Posted
June 3, 2015

Two sample finals (final13.pdf, final10.pdf) and final hints are posted.

PA4 Hints Posted
May 21, 2015
Written Assignment 3 Released!
May 21, 2015

Written Assignment 3 is now available. It is due next Thursday, May 28th at 11:00 on Scoryst.

PA4 and PA5 Released!
May 19, 2015

PA4 and PA5 are released now!

PA3 Hints Posted
May 7, 2015
Midterm Graded
May 5, 2015

The midterm has been graded. Scores and statistics are available on Scoryst. Physical midterms may be picked up on the first floor of Gates. Solutions are available here.

Lecture notes by Prof. Aiken on Semantic Analysis Posted
May 5, 2015

Two lecture notes on semantic analysis are released. These supplement Prof. Dill's lecture slides on semantic analysis and the COOL Manual.

Programming Assignment 3 Released!
April 29, 2015

Programming Assignment 3 is now up and is due May 19, 2015 at 11:59 PM.

Two sample midterms are released!
April 26, 2015

Two sample midterms are released under Handouts. Semantic actions won't be on our exam, so we won't have something like problem 1(c) on the second midterm.

PA2 and WA2 Released!
April 16, 2015

Programming Assignment 2 is now up and is due April 28, 2015. Written Assignment 2 is also now up and is due April 23, 2015.

Notes on parsing are Released!
April 15, 2015

The notes on Parsing are highly recommended before doing WA2.

Written Assignment 1 Released!
April 9, 2015

Written Assignment 1 is now up and is due April 16, 2015 at 11:00 AM on Scoryst. A LaTeX solution template can be downloaded here.

Programming Assignment 1 Released!
April 7, 2015

Programming Assignment 1 is now up and is due April 16, 2015 at 11:59 PM.

Welcome to CS143!
March 30, 2015

Welcome to CS143, an introduction to compilers!

More Information

Course Information
Honor code guidelines
Late policy


1. Notes: Introduction to compilers and lexical analysis
(full size)
2. Review of regular languages
(full size and 4 to page)
3. Notes on parsing (last update 10:17 PM 4/21/2015)
4. Sample midterm 1 (solution)
5. Sample midterm 2 (solution)
6. Sample Final 1
7. Sample Final 2
8. Final Hints


1. Programming Assignment 1

2. Written Assignment 1
2a. WA1 Solutions

3. Programming Assignment 2

4. Written Assignment 2
4a. WA2 Solutions

5. Programming Assignment 3
5a. PA3 Hints

6. Programming Assignment 4
6a. PA4 Hints

7. Porgramming Assignment 5 (updated on May 21)

8. Written Assignment 3

4a. WA3 Solutions


Flex Online Manual
Bison Online Manual
Jlex Online Manual
COOL Manual
A Tour of the Cool Support Code
SPIM Simulator Documentation
Java CUP User's Manual
Java CUP Overview
Cool Trees
Prof. Aiken lecture: Semantic Analysis I
Prof. Aiken lecture: Semantic Analysis II
Prof. Aiken lecture Operational Semantics


1. Course Overview
2. Cool: The Course Project(4-to-page)
3. Lexical Analysis
4. Parsing I
5. Parsing II
6. Parsing III (slides fixed 10PM 4/16/2015)
7. Parsing IV
8. Parsing V
9. Parsing VI
10. Semantic Analysis I
11. Semantic Analysis II
12. Runtime Conventions
13. Code Generation
14. Operational Semantics
15. Local Optimization
16. Global Optimization
17. Register Allocation
18. Garbage Collection