Schedule

This schedule is tentative and subject to change.

Acronyms for course references:

A copy of the Dragon Book is essential for the course. The Cooper and Turczon book is available online through the library. The library also carries a print copy of Rival and Yi.

NOTE: These slides are not meant to substitute for lectures.

Date Topic Notes References
Mon Feb 01, 2021

Introduction

Wed Feb 03, 2021

Intermediate Representations

Mon Feb 08, 2021

Value Numbering

Wed Feb 10, 2021

Live Variable Analysis

Mon Feb 15, 2021

Available Expressions, Reaching Definitions, Very Busy Expressions

Wed Feb 17, 2021

Dominators and SSA Form - Part I

Mon Feb 22, 2021

Dominators and SSA Form - Part II

Wed Feb 24, 2021

Foundations of Data Flow Analysis - Part I

Mon Mar 01, 2021

Foundations of Data Flow Analysis - Part II

Wed Mar 03, 2021

Break

Mon Mar 08, 2021

Dead Code Elimination

Wed Mar 10, 2021

Partial Redundancy Elimination

Mon Mar 15, 2021

Interprocedural Analysis - I

Wed Mar 17, 2021

Interprocedural Analysis - II

Mon Mar 22, 2021

Loop Analysis and Optimization

Wed Mar 24, 2021

Type Inference - I

Mon Mar 29, 2021

Type Inference - II (updated)

Wed Mar 31, 2021

Backend Optimizations

Mon Apr 05, 2021

Program Analysis and Abstract Interpretation

Wed Apr 07, 2021

Abstract Interpretation / Semantics

Mon Apr 12, 2021

Abstract Interpretation (II)

Wed Apr 14, 2021

Abstract Interpretation (II) cont.

Mon Apr 19, 2021

Introduction to SAT/SMT Solvers

Wed Apr 21, 2021

Model Checking

Mon Apr 26, 2021

Symbolic Execution

Wed Apr 28, 2021

Proving Programs Correct

Mon May 03, 2021

Hoare Logic

Wed May 05, 2021

Conclusion (no slides)

Mon May 10, 2021

Reading Period/No classes

Wed May 12, 2021

Reading Period/No classes