CS536-F17 Intro to PLs and Compilers
Room: NOLAND 132 Tue,Th 100-215 Aws Albarghouthi, instructor aws@cs.wisc.edu Office hours: Tue, 215-315 pm Room 6363, Computer Sciences Hakan Memisoglu, teaching assistant memisoglu@cs.wisc.edu Sandhya Srinivas, teaching assistant ssrinivas4@wisc.edu TA office hours: Fri 1100-1200 in CS 4310 |
Course description
Introduction to the theory and practice of compiler design. Comparison of features of several programming languages and their implications for implementation techniques. Several programming projects required.Prereq: CS 367 and either CS 354 or 552.
Course info | Assignments | Resources | Canvas | Piazza (ask questions here)
Textbook and Notes:
- There are links to an extensive set of notes, as well as to copies of the PowerPoint presentations used in class in the table of lectures below.
- The course has no required textbook. If you would like to
have a textbook to consult for another viewpoint on the subject,
the one I recommend is
- Cooper, K. and Torczon, L., Engineering a Compiler. Morgan-Kaufmann.
Lectures
Note: Dates for topics, particularly for the second half of the course, should be considered tentative.Slides for every week will be available on Mondays in pdf and ppt formats.
Here is a sample midterm and its solution
You can find homework solutions here -- each folder has a hwX_soln.html file with the solution of the hwX.
🔥 🔥 🔥 Here is a sample final exam and its solution
Week | Dates | Topics | Slides | Notes | Assigned | Other |
---|---|---|---|---|---|
1 | 9/7 | Course overview | pdf | ppt | notes | P1 | |
2 | 9/12,14 | Finite-state machines | pdf | ppt | notes | HW1 | Automata Tutor |
NFAs | pdf | ppt | notes | Examples (ppt | pdf) | |||
3 | 9/19,21 | Scanner generators | pdf | ppt | notes | HW2 | |
Context-free grammars | pdf | ppt | notes | ||||
4 | 9/26,28 | Context-free grammars (ambiguity) | pdf | ppt | notes | HW3, P2 | |
Syntax-directed translation | pdf | ppt | notes | ||||
5 | 10/3,5 | Java CUP | pdf | ppt | notes | HW4 | Examples |
Parsing | pdf | ppt | notes | ||||
6 | 10/10,12 | Topdown parsing | pdf | ppt | notes | HW5, | |
Topdown parsing (cont'd) | pdf | ppt | notes | P3 | |||
7 | 10/17,19 | SDT for predictive parsing | pdf | ppt | notes | HW6 | |
Static-semantic analysis | pdf | ppt | notes | ||||
8 | 10/24,26 | Review Session | |||
Midterm Exam | |||||
9 | 10/31; 11/2 | LR parsing | pdf | ppt | notes | HW7, P4 | |
Types | pdf | ppt | ||||
10 | 11/7,9 | Runtime environments | pdf | ppt | notes | HW8 | |
Cancelled | |||||
11 | 11/14,16 | Parameter passing | pdf | ppt | notes | HW9 | |
Variable accesses | pdf | ppt | notes | ||||
12 | 11/21,23 | Code generation | pdf | ppt | notes | P5 | |
Thanksgiving | |||||
13 | 11/28,30 | Code generation (cont'd) | pdf | ppt | notes | ||
Code generation (cont'd) | pdf | ppt | notes | ||||
14 | 12/5,7 | Optimization | pdf | ppt | notes | P6, HW10 | |
SSA form and dataflow analysis |
pdf-1 |
ppt-1 pdf-2 | ppt-2 | notes |
||||
Advanced topics | |||||
15 | 12/12 | Review | |||
12/18 | Final exam | 2:45 - 4:45 in NOLAND 132 | Weeks 7-15 |