CS536-S25 Intro to PLs and Compilers

Lecture :   Epic, 6:00 - 9:00 pm Thurs
Instructor :   Beck Hasti, hasti@cs.wisc.edu
Teaching assistants :  

Daniel Smedema, djsmedema@wisc.edu
Aaryan Patel, apatel234@wisc.edu
Jack Stanek, jrstanek@cs.wisc.edu
Nick Boddy, nboddy@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 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 18 hours before the lecture.

Week:
Date
Topics On-line Notes Overheads Other
1: 1/23 Course overview, FSMs Overview,
Scanning
pdf | pdf-a P1 assigned
2: 1/30 NFAs, scanner generators Scanning,
JLex
pdf | pdf-a Example, Hw0 (soln)
3: 2/6 Context-free grammars CFGs pdf | pdf-a P2 assigned,
Hw1 (soln), Make
4: 2/13 SDTs, abstract syntax trees Syntax-directed translations pdf | pdf-a Hw2 (soln)
5: 2/20 Java CUP, parsing Java CUP,
Parsing
pdf | pdf-a P3 assigned
6: 2/27 Midterm 1 6:30 – 8:00 pm
7: 3/6 Top-down parsing Top-down Parsing pdf | pdf-a Hw3 (soln)
8: 3/13 Predictive parsing,
static-semantic analysis
SDT for Predictive Parsing,
Symbol Tables & Static Checks
pdf | pdf-a P4 assigned
9: 3/20 Midterm 2 6:30 – 8:00 pm
Spring Break
10: 4/3 Static-semantic analysis,
runtime environments
Symbol Tables & Static Checks,
Runtime Environments
pdf | pdf-a P5 assigned,
Hw4 (soln)
11: 4/10 Parameter passing,
variable access
Parameter Passing,
Runtime Access to Variables
pdf | pdf-a Hw5 (soln)
Hw6 (soln)
12: 4/17 Code generation Code Generation pdf | pdf-a P6 assigned,
Hw7 (soln)
13: 4/24 Code generation,
optimization
Code Generation,
Optimization
pdf | pdf-a
14: 5/1 Optimization, review Optimization pdf | pdf-a
15: 5/8 Final exam 6:30 – 8:30 pm