Seminar on Program Analysis

ECS 289C (Programming Languages and Compilers)

Winter 2017

General Information

Instructor: Cindy Rubio-González
Time and Location: TR 1:40p-3:00p, Olson 205
Contact E-mail: crubio AT ucdavis DOT edu
Office Hours: Fridays 3:00pm-5:00pm
Office: Kemper Hall 3039
Credits: 4 credits

Tentative Course Overview

This course will explore research in the area of programming languages, with particular emphasis on program analysis. Program analysis is the process of automatically analyzing the behavior of computer programs to discover facts. Topics include static analysis (dataflow analysis, model checking, type inference), dynamic analysis (software testing, automated debugging, automatic program repair), and hybrid approaches. We will cover a wide variety of application domains, and languages. This course is intended for graduate students interested in starting research in the area of programming languages, or graduate students whose ongoing research could benefit from program analysis.

Syllabus [PDF]
Preliminary Reading List [PDF]

Course Schedule

Date Topic Readings Presenter
1/10 Course Overview No reading assignments due Cindy Rubio
1/12 Research Skills How to Read an Engineering Research Paper by William G. Griswold
    Writing Good Software Engineering Research Papers by Mary Shaw [ICSE'03]
    No paper reviews due for this lecture
Cindy Rubio
1/17 Pointer Analysis No reading assignments due Cindy Rubio
1/19 Pointer Analysis Points-to Analysis in Almost Linear Time [POPL'96]
    The Ant and the Grasshoper: Fast and Accurate Pointer Analysis for Millions of Lines of Code [PLDI'07]
    Paper review due 11:55pm Wed Jan 18th
Baotuan Nguyen
    Domenic Cianfichi
   
1/24 Program Slicing Interprocedural Slicing Using Dependence Graphs [PLDI'88]
    Dynamic Program Slicing [PLDI'90]
    Paper review due 11:55pm Mon Jan 23rd
Pallavi Kudigrama
    Dana Iltis
   
1/26 Testing and
    Symbolic Execution
No reading assignments due Cindy Rubio
1/31 Test Generation DART: Directed Automated Random Testing [PLDI'05]
    KLEE: Unassisted and Automatic Generation of High-Coverage Tests for Complex System Programs [OSDI'08]
    Paper review due 11:55pm Mon Jan 30th
Cindy Rubio
    Mark Hildebrand
   
2/2 Proposal Presentations No reading assignments due
    Project Proposal due 11:59pm Thu Feb 2nd
2/7 Model Checking No reading assignments due Cindy Rubio
2/9 Concurrency Learning from Mistakes: A Comprehensive Study of Real World Concurrency Bug Characteristics [ASPLOS'08]
    RacerX: Effective, Static Detection of Race Conditions and Deadlocks [SOSP'03]
    Paper review due 11:55pm Wed Feb 8th
Hui Guo
    Suhua Lei
   
2/14 Debugging Simplifying and Isolating Failure-Inducing Input [TSE'02]
    Paper review due 11:55pm Mon Feb 13th
Cindy Rubio
2/16 Debugging Scalable Statistical Bug Isolation [PLDI'05]
    Short meeting with each team in preparation for Milestone 1
    Paper review due 11:55pm Mon Feb 15th
Luiz Irber
2/21 Performance Understanding and Detecting Real-World Performance Bugs [PLDI'12]
    Go with the Flow: Profiling Copies to Find Runtime Bloat [PLDI'09]
    Paper review due 11:55pm Wed Feb 20th
    Milestone #1 due 11:59pm Tue Feb 21st
Cindy Rubio
    Jonathan Nguyen
   
2/23 Compilers Toward understanding compiler bugs in GCC and LLVM [ISSTA'16]
    Paper review due 11:55pm Wed Feb 22nd
Invited speaker:
    Qirun Zhang
   
2/28 Compilers Finding and Understanding Bugs in C Compilers [PLDI'11]
    Paper review due 11:55pm Mon Feb 27th
Kevin Manuel
3/2 Error Handling Error Propagation Analysis for File Systems [PLDI'09]
    Paper review due 11:55pm Wed Mar 1st
Cindy Rubio
   
3/7 Floating Point Precimonious: Tuning Assistant for Floating-Point Precision [SC'13]
    Floating-Point Precision Tuning Using Blame Analysis [ICSE'16]
    Paper review due 11:55pm Mon Mar 6th
Cindy Rubio
   
3/9 Floating Point Efficient Search for Inputs Causing High Floating-Point Errors [PPoPP'14]
    Rigorous Floating-point Mixed Precision Tuning [POPL'17]
    Paper review due 11:55pm Wed Mar 8th
    Milestone #2 due 11:59pm Thu Mar 9th
Cindy Rubio
    Anthony Di Franco
   
3/14 Automatic Repair Automatically Finding Patches Using Genetic Programming [ICSE'09]
    Paper review due 11:55pm Mon Mar 13th
Cindy Rubio
3/16 Automatic Repair Staged program repair with condition synthesis [FSE'15]
    Paper review due 11:55pm Wed Mar 15th
Hao Fu
3/24 Project Presentations Final Project Presentation 3:30pm-5:30pm Fri Mar 24th
    Final Project Report due 11:59pm Fri Mar 24th