New Directions in Static Analysis for Error-Detection and Garbage Collection

Subscribers:
344,000
Published on ● Video Link: https://www.youtube.com/watch?v=gREQQRKzw3U



Duration: 1:07:17
32 views
0


Pointer analysis is critical for effectively analyzing programs written in languages like C, C++, and Java, which make heavy use of pointers and pointer-based data structures. Unfortunately, pointer analysis continues to be one of the most persistent and difficult problems in static analysis. One reason for this is that previous work has viewed pointer analysis as a single, monolithic problem that can be solved in isolation. However, pointer analysis is not a stand-alone task: its purpose is to provide pointer information to other client analysis algorithms. Since the needs of these clients vary widely, research has so far been unable to produce an efficient pointer analysis algorithm that satisfies them all. Our view is that pointer analysis is not a single problem that can be separated from its client analysis problems. Instead, pointer analysis comprises a family of algorithms, which are selected and customized to meet the specific requirements of each client. In this talk I will present two such customized algorithms. The first is a pointer analysis that we developed for compiler-assisted garbage collection in Java. This analysis supports dynamic object colocation by finding objects that will be connected and instrumenting the program to ensure that they are allocated together in the same garbage collection space. This algorithm is unique because it is unsound: it can miss potential pointer relationships. However, the client (in this case the garbage collector) does not require soundness because allocation decisions do not affect correctness. The second algorithm is a more general approach to customization, called client-driven pointer analysis, which automatically adapts its precision to match the needs of client analyses. Many whole-program analysis problems need precise pointer information, but often they need it only in specific parts of the target program. Our algorithm uses a fast initial analysis pass to determine where more precision is needed, then reruns the analysis with fine-grained precision policy that is customized for the particular client and program. We demonstrate this algorithm on a suite of real, open-source C programs, using a set of error detection problems as clients. Our algorithm achieves high error detection accuracy at a fraction of the cost of comparably accurate fixed-precision algorithms.




Other Videos By Microsoft Research


2016-09-082009 eScience: Computational Thinking for a Modern Kidney Exchange
2016-09-08Computational Aspects of Biological Information Workshop Session 1
2016-09-08How to give a great Research Talk
2016-09-08Computational Aspects of Biological Information Workshop Session 5
2016-09-08Oracle Semantics for Concurrent Separation Logic
2016-09-08Computational Aspects of Biological Information Workshop Session 3
2016-09-08Computational Aspects of Biological Information Workshop Session 3
2016-09-08Perelman's work on the Thurston's Geometrization Conjecture.
2016-09-08Perelman's work on the Thurston's Geometrization Conjecture.
2016-09-08Computational Aspects of Biological Information Workshop Session 5
2016-09-08New Directions in Static Analysis for Error-Detection and Garbage Collection
2016-09-08Using Statistical Monitoring to Detect Failures in Internet Services [1/8]
2016-09-08Perelman's work on the Thurston's Geometrization Conjecture.
2016-09-08New Directions in Static Analysis for Error-Detection and Garbage Collection
2016-09-08SCS '06 - Lightning Round 3: Interactions in Online ΓÇ£SpacesΓÇ¥ - Part
2016-09-08SCS '06 - Lightning Round 3: Interactions in Online ΓÇ£SpacesΓÇ¥ - Part
2016-09-08Computer Human Interaction - the Near and Long-Term Prospects [1/8]
2016-09-08Modernist Cuisine at Home
2016-09-0818 Minutes: Find Your Focus, Master Distraction, and Get the Right Things Done
2016-09-08Antifragile: Things that Gain from Disorder
2016-09-08The Joy of X: A Guided Tour of Math, From One to Infinity



Tags:
microsoft research