ACM Home Page
Please provide us with feedback. Feedback
Solving shape-analysis problems in languages with destructive updating
Full text PdfPdf (704 KB)
Source ACM Transactions on Programming Languages and Systems (TOPLAS) archive
Volume 20 ,  Issue 1  (January 1998) table of contents
Pages: 1 - 50  
Year of Publication: 1998
ISSN:0164-0925
Authors
Mooly Sagiv  Tel-Aviv Univ., Tel-Aviv, Israel
Thomas Reps  Univ. of Wisconsin, Madison
Reinhard Wilhelm  Univ. des Saarlandes, Saarbrücken, Germany
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 11,   Downloads (12 Months): 57,   Citation Count: 61
Additional Information:

abstract   references   cited by   additional resources   index terms   review   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/271510.271517
What is a DOI?

ABSTRACT

This article concerns the static analysis of programs that perform destructive updating on heap-allocated storage. We give an algorithm that uses finite shape graphs to approximate conservatively the possible “shapes” that heap-allocated structures in a program can take on. For certain programs, our technique is able to determine such properties as (1) when the input to the program is a list, the output is also a list and (2) when the input to the program is a tree, the output is also a tree. For example, the method can determine that “listness” is preserved by (1) a program that performs list reversal via destructive updating of the input list and (2) a program that searches a list and splices a new element into the list. None of the previously known methods that use graphs to model the program's store are capable of determining that “listness” is preserved on these examples (or examples of similar complexity). In contrast with most previous work, our shape analysis algorithm is even accurate for certain programs that update cyclic data structures; that is, it is sometimes able to show that when the input to the program is a circular list, the output is also a circular list. For example, the shape-analysis algorithm can determine that an insertion into a circular list preserves “circular listness.”


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.

 
1
ASSMANN, W. AND WEINHARDT, M. 1993. Interprocedural heap analysis for parallelizing imperative programs. In Programming Models For Massively Parallel Computers, W. K. Giloi, S. JS~hnichen, and B. D. Shriver, Eds. IEEE Computer Society, Washington, D.C., 74-82.
2
3
4
 
5
DEUTSCH, t. 1992. A storeless model for aliasing and its abstractions using finite representations of right-regular equivalence relations. In Proceedings of the IEEE International Conference on Computer Languages. IEEE Computer Society, Washington, D.C., 2-13.
6
7
 
8
 
9
 
10
HENDREN, L. AND GAO, G. 1992. Designing programming languages for analyzability: A fresh look at pointer data structures. In Proceedings of the International Conference on Computer Languages. IEEE Computer Society, Washington, D.C., 242-251.
11
 
12
13
 
14
JONES, N. AND MUCHNICK, S. 1981. Flow analysis and optimization of Lisp-like structures. In Program Flow Analysis: Theory and Applications, S. Muchnick and N. Jones, Eds. Prentice- Hall, Englewood Cliffs, N.J., Chapter 4, 102-131.
15
 
16
17
18
 
19
20
 
21
LINDSTROM, G. 1973. Scanning list structures without stacks or tag bits. Inf. Process. Lett. 2, 2 (June), 47-51.
 
22
MOGENSEN, T. 1988. Partially static structures in a self-applicable partial evaluator. In Partial Evaluation and Mixed Computation: Proceedings of the IFIP TC2 Workshop on Partial Evaluation and Mixed Computation (Gammel Avernaes, Denmark, Oct 18-24, 1987). North-Holland, Amsterdam, 325-347.
23
24
 
25
26
27
28
 
29
REYNOLDS, J. 1968. Automatic computation of data set definitions. In Information Processing 68: Proceedings of the IFIP Congress. North-Holland, Amsterdam, 456-461.
 
30
SAGIV, ~/{., REP$, T., AND WILHELM, R. 1995. Solving shape-anMysis problems in languages with destructive updating. Tech. Rep. TR-1276, Computer Sciences Dept., Univ. of Wisconsin, Madison, Wisc. July. Available via http:////www.cs.wisc.edu//trs.html.
 
31
 
32
SHARIR, ~/{. AND PNUELI, t. 1981. Two approaches to interprocedurM data flow analysis. In Program Flow Analysis: Theory and Applications, S. Muchnick and N. Jones, Eds. Prentice- Hall, Englewood Cliffs, N.J., 189-234.
 
33
34

CITED BY  61

ADDITIONAL RESOURCES

Appendices A-B do not appear in the print version of this article. They are contained in the online version of this article and are also available in a separate online document.



REVIEW

"Max Hailperin : Reviewer"

An abstract interpretation of imperative programs mutating pointer-based structures is presented. This interpretation can reach conclusions such as that inserting into a circular list yields a circular list, while inserting into an acyclic lis  more...

Collaborative Colleagues:
Mooly Sagiv: colleagues
Thomas Reps: colleagues
Reinhard Wilhelm: colleagues