SDA SE Wiki

Software Engineering for Smart Data Analytics & Smart Data Analytics for Software Engineering

User Tools

Site Tools


Seminar Talk: Context-Sensitive Points-to-Analysis

Even with a field-sensitive heap-abstraction, context-insensitive points-to-analysis (CI-PTA) is much too imprecise for many applications.

A better alternative is to perform a context-sensitive that analyses each procedure separately for each calling context, that is each possible sequence of calls that lead to the invocation of the procedure. This talk will present the extension of Sridharan's field-sensitive, refinement-based PTA towards context sensitivity:

  • Challenge
  • Approach overview
  • Extended graph representation
  • Extended formalism
  • Algorithms
  • Examples
  • Benchmark results
  • Open issues (questions to discuss in the lab)

This variant of Sridharan's algorithms represents the middle degree of precision and efficiency that we aim to implement and evaluate in the lab phase.

References

A summary of the entire approach of Sridharan is contained in his PLDI 2006 article [ Sridharan & Bodik 2006 ].

The details are in his PhD thesis [ Sridharan 2007 ]:

  • Chapter 3 is an overview of all the three PTA variants (field-sensitive, context-sensitive, on-the-fly)
    • In particular, Section 3.3 (page 53-59) introduces the context-sensitive approach
  • Chapter 5 is an in-depth discussion of the context-sensitive variant
    • In particular, Section 5 (page 139-176) elaborates the context-sensitive approach. You can skip on-the-fly call graph construction in your presentation. It will be discussed in the next presentation.

General Rehearsal

The first complete version of the talk will be presented (to GK) on Friday, Oct 01, 2010 at 13:00. We will then discuss open issues and once these are resolve, fine-tuning of the contents and presentation.

If you have any questions please do not hesitate to ask as soon as they arise. Don't wait until the rehearsal appointment!
teaching/labs/ese/2010/context-sensitive.txt · Last modified: 2018/05/09 01:59 (external edit)

SEWiki, © 2025