CS536-S25 Intro to PLs and Compilers

Lecture :  

Birge 145, 4:00 - 5:15 pm Mon, Wed

Instructor :  

Beck Hasti, hasti@cs.wisc.edu

Teaching assistants :  

Aaryan Patel, apatel234@wisc.edu
Daniel Smedema, djsmedema@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 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 18 hours before the lecture.

Week Date Topic Overheads On-line Notes Other
1
1/22 Course overview pdf | pdf-a Overview P1 assigned
2 1/27 Finite-state machines pdf | pdf-a Scanning
1/29 NFAs pdf | pdf-a Hw0 (soln)
3 2/3 Scanner generators pdf | pdf-a JLex
2/5 Context-free grammars pdf | pdf-a Context-free Grammars P2 assigned, Hw1 (soln)
4 2/10 Context-free grammars pdf | pdf-a
2/12 Syntax-directed translations pdf | pdf-a Syntax-directed Translation Hw2 (soln)
5 2/17 Abstract syntax trees pdf | pdf-a
2/19 Java CUP pdf | pdf-a JavaCUP P3 assigned
6 2/24 Review pdf| pdf-a
2/26 Parsing pdf | pdf-a Parsing Midterm 1, 2/27, 7:30 – 9 pm
7 3/3 Top-down parsing pdf | pdf-a Top-down Parsing
3/5 Top-down parsing (cont.) pdf | pdf-a Hw3 (soln)
8 3/10 SDT for predictive parsing pdf | pdf-a SDT for Predicitive Parsing
3/12 Static-semantic analysis pdf | pdf-a Symbol Tables & Static Checks P4 assigned
9 3/17 Name analysis pdf | pdf-a
3/19 Types, review pdf | pdf-a Midterm 2, 3/20, 7:30 – 9 pm
Spring Break
10 3/31 Runtime environments pdf | pdf-a Runtime Environments P5 assigned, Hw4 (soln)
4/2 Parameter passing pdf | pdf-a Parameter Passing Hw5 (soln)
11 4/7 Variable access pdf | pdf-a Runtime Access to Variables Hw6 (soln)
4/9 Code generation pdf | pdf-a Code Generation
12 4/14 Code generation pdf | pdf-a P6 assigned, Hw7 (soln)
4/16 Code generation pdf | pdf-a
13 4/21 Optimization pdf | pdf-a Optimization
4/23 Optimization pdf | pdf-a
14 4/28 No class
4/30 Review pdf | pdf-a Final exam, 5/8, 5:05 – 7:05 pm