|
ABSTRACT
Existing methods for alias analysis of recursive pointer data structures are based on two approximation techniques: k-limiting, and store-based (or equivalently location or region-based) approximations, which blur distinction between elements of recursive data structures. Although notable progress in inter-procedural alias analysis has been recently accomplished, very little progress in the precision of analysis of recursive pointer data structures has been seen since the inception of these approximation techniques by Jones and Muchnick a decade ago. As a result, optimizing, verifying and parallelizing programs with pointers has remained difficult.
We present a new parametric framework for analyzing recursive pointer data structures which can express a new natural class of alias information not accessible to existing methods. The key idea is to represent alias information by pairs of symbolic access paths which are qualified by symbolic descriptions of the positions for which the alias pair holds.
Based on this result, we present an algorithm for interprocedural may-alias analysis with pointers which on numerous examples that occur in practice is much more precise than recently published algorithms [CWZ90, He90, LR92, CBC93].
REFERENCES
Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.
| |
POP91
|
ACM Press. Eighteenth Annual ACM Sy~p. on Principles of Programming Languages, Orlando, FL, Jan. 1991.
|
| |
PLD92
|
ACM Press. SIGPLAN'9~ Conf. on Programming Language Design and implementation, volume 27(7) of SIG- PLAN Notices, San Francisco, June 1992.
|
| |
ASU86
|
Alfred V. Aho , Ravi Sethi , Jeffrey D. Ullman, Compilers: principles, techniques, and tools, Addison-Wesley Longman Publishing Co., Inc., Boston, MA, 1986
|
 |
BK89
|
|
 |
Br64
|
|
 |
CWZ90
|
|
 |
CBC93
|
|
 |
CCF91
|
Jong-Deok Choi , Ron Cytron , Jeanne Ferrante, Automatic construction of sparse data flow evaluation graphs, Proceedings of the 18th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.55-66, January 21-23, 1991, Orlando, Florida, United States
[doi> 10.1145/99583.99594]
|
| |
Co81
|
P, Cousot. Semantic foundations of program analysis. In Program Flow Analysis: Theory and Applications, pp. 303-342. Prentice-Hall, 1981.
|
 |
CC77a
|
|
 |
CC77b
|
|
| |
CC77c
|
P. Cousot and R. Cousot. Static determination of dynamic properties of recursive procedures. In Working Conf. on Formal Description o~ Programming Concepts. IFIP WG 2.2, North-Holland, Aug. 1977.
|
 |
CC79
|
|
| |
CC92
|
|
 |
CH78
|
|
 |
De90
|
|
| |
De92a
|
A. Deutsch. Operational Models of Programming Languages and Representations of Relations on Regular Languages with Application to the Static Determination of Dynamic Aliasing Properties of Data. PhD thesis, LIX, Ecole Polytechnique, F-91128, Palaiseau, France, 1992.
|
| |
De92b
|
A. Deutsch. A storeless model of aliasing and its abstractions using finite representations of right-regular equivalence relations. In {IC092}, pp. 2-13.
|
| |
DGS94
|
|
| |
Ei74
|
|
| |
Gr89
|
P. Granger. Static analysis of arithmetical congruences. International Journal of Computer Mathematics, 30:165-190, 1989.
|
| |
Gr91
|
|
| |
Gr92
|
|
| |
Ha79
|
N. Halbwachs. Dgterm~nation automatique de relations lin~aires vdrifi~es par lea variables d'un programme. PhD thesis, Universit~ Sclentlfique et M~dicale de Grenoble & Institut National Polytechnique de Grenoble, Grenoble, France, Mar. 1979.
|
| |
Ha89
|
W.L. Harrison. The interprocedural analysis and automatic parallelisation of Scheme programs. Lisp and Symbolic Computation, 2(3):176-396, Oct. 1989.
|
| |
He88
|
L, Hederman. Compile time garbage collection. Master's thesis, Rice University, Houston, Aug. 1988. Tech. report COMP TR88-75.
|
| |
He90
|
|
| |
HG92
|
L.J. Hendren and G.R. Gao. Designing programming languages for analysability: a fresh look at pointer data structures. In {ICC92}, pp. 242-251.
|
 |
HHN92
|
|
 |
HPR89
|
|
 |
Hu86
|
|
| |
ICC92
|
Proc. of the IEEE 1992 International Conf. on Computer Languages, San Francisco, Apr. 1992. IEEE Press.
|
| |
Jo81
|
N.D. Jones. Flow analysis of lambda expressions. In Symp. on Functional Languages and Computer Architecture, pp. 376-401. Chalmers University of Technology, June 1981.
|
| |
JM81
|
N.D. Jones and S. Muchnick. Flow analysis and optimization of Lisp-like structures. In S. Muchnick and N.D. Jones, editors, Program Flow Analysis: Theory and Applications, pp. 102-131. Prentlce-Hall, 1981.
|
 |
JM82
|
|
| |
Jo81
|
H.B.M. Jonkers. Abstract storage structures. In de Bakker and van Vllet, editors, Algorithmic Languages, pp. 321- 343. IFIP, North Holland, 1981.
|
| |
Ka76
|
M. Karr. Affine relationships among variables of a program. Acts Informatica, 6:133-151, 1976.
|
 |
Ki73
|
|
| |
La92a
|
|
 |
La92b
|
|
 |
LR91
|
|
 |
LR92
|
|
 |
LH88a
|
|
 |
LH88b
|
James R. Larus , Paul N. Hilfinger, Restructuring Lisp programs for concurrent execution, Proceedings of the ACM/SIGPLAN conference on Parallel programming: experience with applications, languages and systems, p.100-110, July 19-21, 1988, New Haven, Connecticut, United States
|
 |
ML+93
|
Thomas J. Marlowe , William G. Landi , Barbara G. Ryder , Jong-Deok Choi , Michael G. Burke , Paul Carini, Pointer-induced aliasing: a clarification, ACM SIGPLAN Notices, v.28 n.9, p.67-70, Sept. 1993
[doi> 10.1145/165364.165387]
|
| |
MR89
|
T.J. Marlowe and B.G. Ryder. Hybrid incremental alias algorithms. Tech. report LCSR-TR-129, Rutgers University, Oct. 1989.
|
| |
Ma91
|
F. Masdupuy. Using abstract interpretation to detect array data dependencies. In Proc. of the International Syrup. on 8upercomputing, pp. 19-27. Kyushu University Press, Nov. 1991. ISBN 4-87378-284-8.
|
| |
Mo84
|
|
 |
NPD87
|
|
 |
Pa66
|
|
| |
RF93
|
|
 |
RM88
|
|
| |
SF+90
|
|
| |
SP81
|
M. Sharir and A. Pnueli. Two approaches to interprocedural data flow analysis, in S. Muchnick and N.D. Jones, editors, Program Flow Analysis: Theory and Applications, pp. 189-234. Prentice-Hall, 1981.
|
| |
Sh91
|
|
| |
St92
|
|
 |
Wa91
|
|
 |
We80
|
|
CITED BY 71
|
|
|
|
|
|
|
|
|
|
|
|
|
Mooly Sagiv , Thomas Reps , Reinhard Wilhelm, Solving shape-analysis problems in languages with destructive updating, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.16-31, January 21-24, 1996, St. Petersburg Beach, Florida, United States
|
|
|
|
|
|
Mooly Sagiv , Thomas Reps , Reinhard Wilhelm, Parametric shape analysis via 3-valued logic, Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.105-118, January 20-22, 1999, San Antonio, Texas, United States
|
|
|
|
|
|
Rakesh Ghiya , Laurie J. Hendren, Is it a tree, a DAG, or a cyclic graph? A shape analysis for heap-directed pointers in C, Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.1-15, January 21-24, 1996, St. Petersburg Beach, Florida, United States
|
|
Peng Wu , Paul Feautrier , David Padua , Zehra Sura, Instance-wise points-to analysis for loop-based dependence testing, Proceedings of the 16th international conference on Supercomputing, June 22-26, 2002, New York, New York, USA
|
|
|
|
|
|
|
|
|
|
|
|
Christian Collberg , Clark Thomborson , Douglas Low, Manufacturing cheap, resilient, and stealthy opaque constructs, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.184-196, January 19-21, 1998, San Diego, California, United States
|
|
Mark Marron , Mario Méndez-Lojo , Manuel Hermenegildo , Darko Stefanovic , Deepak Kapur, Sharing analysis of arrays, collections, and recursive structures, Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, November 09-10, 2008, Atlanta, Georgia
|
|
|
|
|
Karl Crary , David Walker , Greg Morrisett, Typed memory management in a calculus of capabilities, Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.262-275, January 20-22, 1999, San Antonio, Texas, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Luc Séméria , Koichi Sato , Giovanni De Micheli, Resolution of dynamic memory allocation and pointers for the behavioral synthesis form C, Proceedings of the conference on Design, automation and test in Europe, p.312-319, March 27-30, 2000, Paris, France
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Ramkrishna Chatterjee , Barbara G. Ryder , William A. Landi, Relevant context inference, Proceedings of the 26th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.133-146, January 20-22, 1999, San Antonio, Texas, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Saumya Debray , Robert Muth , Matthew Weippert, Alias analysis of executable code, Proceedings of the 25th ACM SIGPLAN-SIGACT symposium on Principles of programming languages, p.12-24, January 19-21, 1998, San Diego, California, United States
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Patrick Cousot , Radhia Cousot, Formal language, grammar and set-constraint-based program analysis by abstract interpretation, Proceedings of the seventh international conference on Functional programming languages and computer architecture, p.170-181, June 26-28, 1995, La Jolla, California, United States
|
|
|
|
|
|
|
|
Bolei Guo , Matthew J. Bridges , Spyridon Triantafyllis , Guilherme Ottoni , Easwaran Raman , David I. August, Practical and Accurate Low-Level Pointer Analysis, Proceedings of the international symposium on Code generation and optimization, p.291-302, March 20-23, 2005
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
REVIEW
"Marie Jeanne Helene Iordache : Reviewer"
Deutsch reports on methods for alias analysis of recursive pointer
data structures. The paper is meant for advanced programmers who work on
important jobs like programming language implementation, compiler
construction, and operating systems i
more...
Peer to Peer - Readers of this Article have also read:
-
Data structures for quadtree approximation and compression
Communications of the ACM
28, 9
Hanan Samet
-
A hierarchical single-key-lock access control using the Chinese remainder theorem
Proceedings of the 1992 ACM/SIGAPP Symposium on Applied computing
Kim S. Lee
, Huizhu Lu
, D. D. Fisher
-
An intelligent component database for behavioral synthesis
Proceedings of the 27th ACM/IEEE Design Automation Conference on
Gwo-Dong Chen
, Daniel D. Gajski
-
The GemStone object database management system
Communications of the ACM
34, 10
Paul Butterworth
, Allen Otis
, Jacob Stein
-
Putting innovation to work: adoption strategies for multimedia communication systems
Communications of the ACM
34, 12
Ellen Francik
, Susan Ehrlich Rudman
, Donna Cooper
, Stephen Levine
|