Schedule

Program Analysis: Theory and Practice - CSCI 7135 - Fall 2025

\(\newcommand{\TirName}[1]{\text{#1}} \newcommand{\inferlab}[3]{ \let\and\qquad \begin{array}{l} \TirName{#1} \\ \displaystyle \frac{#2}{#3} \end{array} } \newcommand{\inferright}[3]{ \let\and\qquad \displaystyle \frac{#2}{#3}\TirName{#1} } \newcommand{\inferrule}[3][]{\inferlab{#1}{#2}{#3}} \newcommand{\infer}[3][]{\inferrule[#1]{#2}{#3}} \)

All students should have received a welcome e-mail from me on how to get set up with the course tools. If you did not receive such a message, please send me an e-mail. All further correspondence will be via Piazza.

Class meetings are held on Tuesdays and Thursdays from 9:30 a.m. to 10:45 a.m. in DLC 1B20.

The Reading column lists the assigned reading for the meeting. You should do the reading before attending class and view it as an introduction to spark discussion in class. The Assignment column lists the due date for each assignment.

The upcoming schedule lists the topics we plan to cover and approximately the number of meetings we plan to spend on each topic. The schedule is tentative. Most likely, some things will change during the semester, and the schedule will be revised as necessary. This class is yours, so please make suggestions.

Date Part Title Reading Assignment
24 R 11/13 Foundations Dataflow Analysis

Recommended. Rival and Yi. Section 10.1.

Recommended. Møller and Schwartzbach. Chapter 5.
 
25 T 11/18 Foundations Chaotic Iteration    
26 R 11/20 Foundations Heap Abstraction    
27 T 12/02 Foundations Points-To Analysis (as an Abstract Interpretation) Supplemental. Smaragdakis and Balatsouras. Pointer Analysis.  
28 R 12/04 Foundations Symbolic Heap Analysis (as an Abstract Interpretation)    
No matching items
Date Part Title Reading Assignment
23 T 11/11 Foundations Abstract Transition Semantics Recommended. Rival and Yi. Chapter 4.  
22 R 11/06 Foundations Widening    
21 T 11/04 Foundations Abstract Domain Combinators Recommended. Rival and Yi. Section 10.2.  
20 R 10/30 Foundations Abstract Domains Recommended. Rival and Yi. Section 5.1.  
19 T 10/28 Foundations Abstract Interpretation Recommended. Rival and Yi. Section 3.3-3.4.  
18 R 10/23 Foundations Abstraction Recommended. Rival and Yi. Section 3.2.  
17 T 10/21 Foundations Collecting Semantics Recommended. Rival and Yi. Section 3.1.  
16 R 10/16 Foundations Theorem Proving in Lean    
15 T 10/14 Preliminaries Denotational Semantics

Recommended. Winskel, Chapter 5.

Supplemental. Rival and Yi, Chapter A.
 
14 T 10/07 Foundations Symbolic Execution and Separation Logic    
13 R 10/02 Foundations Functional Programming in Lean    
12 T 09/30 Foundations Symbolic Execution and Separation Logic

Supplemental. John C. Reynolds. 2003. Separation logic: a logic for shared mutable data structures. LICS 2003, 55–74.

Supplemental. James C. King. 1976. Symbolic execution and program testing. Commun. ACM 19, 7 (July 1976), 385–394.
 
11 R 09/25 Preliminaries Verification Conditions    
10 T 09/23 Preliminaries Completeness    
9 R 09/18 Preliminaries Soundness Recommended. Winskel, Chapter 7.  
8 T 09/16 Preliminaries Deductive Verification    
7 R 09/11 Preliminaries Hoare Logic    
6 T 09/09 Preliminaries Assertions Recommended. Winskel, Chapter 6.  
5 R 09/04 Preliminaries Meta Theory    
4 T 09/02 Preliminaries Induction Supplemental. Pfenning, Lecture Notes on Inductive Definitions, 2004.  
3 R 08/28 Preliminaries Operational Semantics Recommended. Winskel, Chapters 3-4. These chapters are another source on judgments and inductive definitions.  
2 T 08/26 Preliminaries Syntax and Semantics

Recommended. Winskel, Chapter 2.

Recommended. Harper, Chapters 1-3 (i.e., Part I). These chapters are background on syntax, judgments, and inductive definitions.
 
1 R 08/21 Introduction Welcome and Course Overview    
No matching items