Foundations and Trends® in Programming Languages > Vol 2 > Issue 1

Pointer Analysis

By Yannis Smaragdakis, University of Athens, Greece, smaragd@di.uoa.gr | George Balatsouras, University of Athens, Greece, gbalats@di.uoa.gr

 
Suggested Citation
Yannis Smaragdakis and George Balatsouras (2015), "Pointer Analysis", Foundations and TrendsĀ® in Programming Languages: Vol. 2: No. 1, pp 1-69. http://dx.doi.org/10.1561/2500000014

Publication Date: 21 Apr 2015
© 2015 Y. Smaragdakis and G. Balatsouras
 
Subjects
Abstract Interpretation,  Compilation and Interpretation Techniques,  Programming Language Implementation,  Program Transformations and Optimizations,  Static and Dynamic Program Analysis
 

Free Preview:

Download extract

Share

Download article
In this article:
1. Introduction
2. Core Pointer Analysis
3. Analysis of Realistic Languages
4. Context Sensitivity
5. Flow Sensitivity, Must-Analysis, and ... Pointers
6. Conclusions
Acknowledgments
References

Abstract

Pointer analysis is a fundamental static program analysis, with a rich literature and wide applications. The goal of pointer analysis is to compute an approximation of the set of program objects that a pointer variable or expression can refer to. We present an introduction and survey of pointer analysis techniques, with an emphasis on distilling the essence of common analysis algorithms. To this end, we focus on a declarative presentation of a common core of pointer analyses: algorithms are modeled as configurable, yet easy-to-follow, logical specifications. The specifications serve as a starting point for a broader discussion of the literature, as independent threads spun from the declarative model.

DOI:10.1561/2500000014
ISBN: 978-1-68083-020-0
84 pp. $65.00
Buy book (pb)
 
ISBN: 978-1-68083-021-7
84 pp. $125.00
Buy E-book (.pdf)
Table of contents:
1. Introduction
2. Core Pointer Analysis
3. Analysis of Realistic Languages
4. Context Sensitivity
5. Flow Sensitivity, Must-Analysis, and ... Pointers
6. Conclusions
Acknowledgments
References

A Framework For Efficient Modular Heap Analysis

Pointer analysis is a fundamental static program analysis with a rich literature and wide applications. The goal of pointer analysis is to compute an approximation of the set of program objects that a pointer variable or expression can refer to.

This monograph introduces and surveys the most common modern approaches to pointer analysis, with an emphasis on distilling the essence of common analysis algorithms. With an eye towards ease of exposition and concreteness, the presentation aspires to be rather more tutorial and hands-on than other surveys of the pointer analysis area. To this end, the focus is on a declarative presentation of a common core of pointer analyses: algorithms are modeled as configurable, yet easy-to-follow, logical specifications. The specifications serve as a starting point for a broader discussion of the literature, as independent threads spun from the declarative model.

 
PGL-014