CS536-S24 Intro to PLs and Compilers
Lecture 1: |
Birge 145, 4:00 - 5:15 pm Mon, Wed |
Instructor : |
Beck Hasti, hasti@cs.wisc.edu |
Teaching assistants : |
Andrey Yao, andrey.yao@wisc.edu
|
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: (CS367 or CS400) and CS/ECE354.
Course Info | Exam Info | Asg Info | Resources | Office Hours | Piazza (ask questions here)
Textbook and Notes: The course has no required textbook. There are links to an extensive set of on-line notes (pdf version) as well as to copies of the lecture overheads used in class, in the schedule below.Schedule
Note: Dates for topics, particularly for the second half of the course, should be considered tentative.
Overheads for each lecture will be available in pdf format at least 14 hours before the lecture.
Week | Date | Topic | Overheads | On-line Notes | Other |
---|---|---|---|---|---|
1 | |||||
1/24 | Course overview | pdf | pdf-a | Overview | ||
2 | 1/29 | Finite-state machines | pdf | pdf-a | Scanning | P1 assigned |
1/31 | NFAs | pdf | pdf-a | Hw0 (soln) | ||
3 | 2/5 | Scanner generators | pdf | pdf-a | JLex | Example |
2/7 | Context-free grammars | pdf | pdf-a | Context-free Grammars | P2 assigned, Hw1 (soln) | |
4 | 2/12 | Context-free grammars | pdf | pdf-a | Make | |
2/14 | Syntax-directed translations | pdf | pdf-a | Syntax-directed Translation | Hw2 (soln) | |
5 | 2/19 | Abstract syntax trees | pdf | pdf-a | ||
2/21 | Java CUP | pdf | pdf-a | JavaCUP | Java CUP examples | |
6 | 2/26 | Review | pdf| pdf-a | ||
2/28 | Parsing | pdf | pdf-a | Parsing | P3 assigned Midterm 1, 2/29, 7:30 – 9 pm |
|
7 | 3/4 | Top-down parsing | pdf | pdf-a | Top-down Parsing | |
3/6 | Top-down parsing (cont.) | pdf | pdf-a | Hw3 (soln) | ||
8 | 3/11 | SDT for predictive parsing | pdf | pdf-a | SDT for Predicitive Parsing | |
3/13 | Static-semantic analysis | pdf | pdf-a | Symbol Tables & Static Checks | ||
9 | 3/18 | Name analysis | pdf | pdf-a | ||
3/20 | Types, review | pdf | pdf-a |
Midterm 2, 3/21, 7:30 – 9 pm P4 assigned |
||
Spring Break | |||||
10 | 4/1 | Runtime environments | pdf | pdf-a | Runtime Environments | Hw4 (soln) |
4/3 | Parameter passing | pdf | pdf-a | Parameter Passing | Hw5 (soln) | |
11 | 4/8 | Variable access | pdf | pdf-a | Runtime Access to Variables | Hw6 (soln) |
4/10 | Code generation | pdf | pdf-a | Code Generation | MIPS tutorial, P5 assigned | |
12 | 4/15 | Code generation | pdf | pdf-a | Hw7 (soln) | |
4/17 | Code generation | pdf | pdf-a | |||
13 | 4/22 | Optimization | pdf | pdf-a | Optimization | P6 assigned |
4/24 | Optimization | pdf | pdf-a | |||
14 | 4/29 | No class | |||
5/1 | Review | pdf | pdf-a | Final exam, 5/5, 2:45 – 4:45 pm |