CS536-S24 Intro to PLs and Compilers

Lecture 1:  
Lecture 2:  

Birge 145, 4:00 - 5:15 pm Mon, Wed
Science 180, 8:00 - 9:15 am Mon, Wed

Instructor :  

Beck Hasti, hasti@cs.wisc.edu

Teaching assistants :  

Andrey Yao, andrey.yao@wisc.edu
Robert Nagel, rnagel2@wisc.edu
Sadman Sakib, sadmankiba@cs.wisc.edu
Saikumar Yadugiri, saikumar@cs.wisc.edu
Ting Cai, tcai35@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