Program Analysis

Shmuel (Mooly) Sagiv Wed 9-12

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 POWERPOINT does not show certain mathematical characters use fonts in a zip file, by clicking here. Make sure to extract
them to the appropriate directory,

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. Course Overview
    Printer Friendly Version
    Class Notes by Ronny Ahituv
  2. Operational Semantics
    Printer Friendly Version
    Prlog Code
  3. Chaotic Iterations
    Printer Friendly Version
    Python Code
    Class Notes by Kalev Alpernas
  4. Abstract Interpretation Part 1
    Printer Friendly Version
    Class Notes by Anna Itin
    Class Notes by Lital Biniashvili
  5. Abstract Interpretation Part 2
    Printer Friendly Version
    Class Notes by Ben Riva & Ofri Ziv
  6. Proving the Absence of Buffer Overruns
    Printer Friendly Version
    Class Notes by Ben Riva & Ofri Ziv
  7. Shape Analysis
    Printer Friendly Version
    Class Notes by Ori Lahav
  8. Interprocedural Analysis by Noam Rinetzky
    Printer Friendly Version
  9. Counterexample Guided Refinement
    Printer Friendly Version
  10. Combining Abstract Interpreters
    Printer Friendly Version
  11. Handling Concurrent Programs
    Printer Friendly Version
  12. Guest Lecture by Roman Manevich
    Printer Friendly Version

Homework Assignments

Sample Exams

For further information