Program Analysis

Shmuel (Mooly) Sagiv
Thursday 16-19 Orenshtein 111

Advanced techniques for statically analyzing programs are discussed. These techniques allows one to answer computationally hard questions about programs in an efficient albeit conservative way. They are also referred to as abstract interpretation since the algorithms interpret the program on a simplified abstract domain. The techniques are useful in compilers in order to generate more efficient code and in other programming language environments such as debuggers and code quality checkers.

For an interesting note on static analysis click here.

Important Message

If your POWERPOMT does not show certain  mathematical characters use
fonts in a zip file, by clicking here. Make sure to extract
them to the appropriate directory, that is :

- C:\windows\Fonts - If you're on Win 9x
- C:\Winnt\fonts - If you're on NT

Alternatively, you can extract them anywhere, and install them via the control panel


Example Program Analysis Problems

Course Requirements


The course book  Principles of Program Analysis by Nielson, Nielson and Hankin  is available in Dionon.

Course Schedule

1.   March 1, Course Overview Lecture Summary by Shachar Itzhaky

2.   March 8, Iterative Dataflow Algorithms 
Lecture Summary by  Osnat Mintz and Mati Shomrat    

3.    March 15, Monotone Frameworks
                    Class Notes by Omer Kidron

4.    March 22, Interprocedural Analysis
                   Class Notes by Liat Ramati and Dor Nir 

5.   May 24, Operational Semantics
Class Notes by Roy Ganor and Uri Juhasz      

6.   May 31, Abstract Interpretation Part I
             Class Notes by  Or Tamir and Ori Yehichieli

7.       June 7, Abstract Interpretation Part II
            Class Notes by Michal Segalov, Arik Nemtsov

8.       June 20,21, Shape Analysis
   Class Notes for June 21 by Dror Weiss

9.       June 28, Counterexample Guided Refinement

10.   August 8 16-19 Scriber 309, Concurrent Programs









Homework Assignments

    Assignment 1: Due April 12

     Assignment 2: Dues July 1

     Course Project due August 10th

For further information