CS264: Program Analysis

Ras Bodik, WF 11-12:30, 310 Soda

Course Description

Advanced techniques for statically analyzing programs are discussed. These techniques allow 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. Time permitting, we will also study program representations and and techniques for dynamic analysis.

Textbook

Outline of Syllabus

Paper Summaries

You will write short summaries of the research papers covered in class, including the papers covered by guest lecturers. the summaries should be emailed to cs264 imail eecs berkeley edu. The summaries will be due before the paper is discussed in class. They will graded Pass/Fail.

Format: the summaries will have five short paragraphs:

  1. Summary: what’s the problem? what’s the solution?
  2. Key new ideas: what’s good about the paper?
  3. Limitations: what’s weak in the paper?
  4. What next?
  5. Missing background

Schedule

Acknowledgement: Slides are adopted from Mooly Sagiv. Notes come from students in Mooly's class at Tel Aviv.

310 Soda 11am Topic Notes More notes
Wed, January 19   Introduction (ppt, pdf)
notes
 
Fri, January 21   Background for KISS (ppt, pdf)    
Mon, January 24 4pm, 320 Soda Shaz Qadeer (MSR), Debugging concurrent programs by context-bounded analysis
paper
supplemental paper
Friday, January 28, 2005   Chaotic iterations, ... (ppt, pdf)
notes
 
Wednesday, February 02, 2005   Abstract Interpretation (part I)
 
Friday, February 04, 2005 usual time & place Sumit Gulwani (UCB), Random Interpretation (ppt)
paper
project web page
Wednesday, February 09   no class (DARPA review)    
Friday, February 11   Global Soundness Theorem    
Wednesday, February 16   Interprocedural analysis paper (up to Section 4.1) quotes from summaries
Friday, February 18   CFL-reachability algorithms, demand analysis, linear constants Sections 5,6 from this paper (no summary to be submitted)  
Wednesday, February 23   Points-to Analysis paper, plus Section 4.4 from this paper (summary by Tuesday, noon) quotes from summaries
Thursday, February 24 4pm, room TBD John Whaley, Program Analysis with Binary Decision Diagrams paper (summary by Thursday, 4pm)  
Wednesday, March 2   SLAM paper (summary due Tuesday, noon).

HW1, due Tuesday Mar 8

quotes from summaries

Friday, March 04   x86 memory analysis summary by Thu, noon  
Monday, March 07 1:15pm, Woz Sorin Lerner, Automatically Checking the Correctness of Program Analyses and Transformations paper  
Friday, March 11   Project discussion; odds and ends    
Wed, March 16   Inference: Refactoring for generalization using type constraints summary by Tue, noon quotes
Friday, March 18   Inference: CCured summary by Thu noon (focus on Section 6, obviously)  
Wed, March 23   spring break    
Fri, March 25   spring break    

Wed, March 30

  Inference: Converting Java Programs to use Generic Libraries    
Friday, April 01   Project proposal presentations (3 minutes per team)    
Wed, April 06 4pm, 306 Soda no class (Ras at ETAPS), but there will be an optional guest talk: Reasoning about Reliability and Security Using Boolean Methods
no summary, the talk is optional  
Friday, April 08   constraints: ABCD slides  
Wed, April 13   Dynamic analysis: Hybrid dynamic data race detection summary  
Friday, April 15   Dynamic analysis: Atomizer: A Dynamic Atomicity Checker for Multithreaded Programs    
Wed, April 20   Software engineering: Predicate-complete Testing    
Friday, April 22 usual place and time Guest speaker: Andreas Zeller, Dynamic analysis: Isolating Cause-Effect Chains from Computer Programs    
Wed, April 27   Project presentations    
Friday, April 29   no class (EECS Retreat)    
Wed, May 04   Project presentations    
Friday, May 06   Project presentations (if we can't fit them into previous two days)    

 

News

Page last updated: Tue, 4/12/05 5:04 PM

Friday 3/4:

Tuesday 3/1:

Friday 2/25:

Tuesday 2/15:

Friday 2/11:

Sunday:

Thursday:

Friday: