|
ABSTRACT
Shape analysis concerns the problem of determining "shape invariants" for programs that perform destructive updating on dynamically allocated storage. This article presents a parametric framework for shape analysis that can be instantiated in different ways to create different shape-analysis algorithms that provide varying degrees of efficiency and precision. A key innovation of the work is that the stores that can possibly arise during execution are represented (conservatively) using 3-valued logical structures. The framework is instantiated in different ways by varying the predicates used in the 3-valued logic. The class of programs to which a given instantiation of the framework can be applied is not limited a priori (i.e., as in some work on shape analysis, to programs that manipulate only lists, trees, DAGS, etc.); each instantiation of the framework can be applied to any program, but may produce imprecise results (albeit conservative ones) due to the set of predicates employed.
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
|
Aiken, A. 1996. Position statement. Prepared for the Programming Languages Working Group of the ACM Workshop on Strategic Directions in Computing Research (Cambridge, Mass, June 14--15, 1996).
|
| |
2
|
Assmann, U. and Weinhardt, M. 1993. Interprocedural heap analysis for parallelizing imperative programs. In Programming Models For Massively Parallel Computers, W. K. Giloi, S. Jähnichen, and B. D. Shriver, Eds., IEEE Press, Washington, DC, 74--82.
|
| |
3
|
Bell, J. and Machover, M. 1977. A Course in Mathematical Logic. North-Holland, Amsterdam.
|
| |
4
|
|
| |
5
|
|
 |
6
|
|
| |
7
|
Clarke, E. and Jha, S. 1995. Symmetry and induction in model checking. In Computer Science Today: Recent Trends and Developments, J. V. Leeuwen, Ed., Lecture Notes in Computer Science, vol. 1000, Springer-Verlag, New York, 455--470.
|
| |
8
|
|
| |
9
|
|
 |
10
|
|
 |
11
|
|
| |
12
|
|
| |
13
|
Deutsch, L. 1973. An interactive program verifier. Ph.D. Thesis, University of California, Berkeley, Calif.
|
| |
14
|
|
| |
15
|
|
| |
16
|
|
| |
17
|
Ginsberg, M. 1988. Multivalued logics: A uniform approach to inference in artificial intelligence. Comp. Intell. 4, 265--316.
|
| |
18
|
|
| |
19
|
|
| |
20
|
|
| |
21
|
|
 |
22
|
Laurie J. Hendren , Joseph Hummell , Alexandru Nicolau, Abstractions for recursive pointer data structures: improving the analysis and transformation of imperative programs, Proceedings of the ACM SIGPLAN 1992 conference on Programming language design and implementation, p.249-260, June 15-19, 1992, San Francisco, California, United States
|
| |
23
|
Hoare, C. 1975. Recursive data structures. Int. J. Comput. Inf. Sci. 4, 2, 105--132.
|
 |
24
|
S. Horwitz , P. Pfeiffer , T. Reps, Dependence analysis for pointer variables, Proceedings of the ACM SIGPLAN 1989 Conference on Programming language design and implementation, p.28-40, June 19-23, 1989, Portland, Oregon, United States
|
 |
25
|
Jakob L. Jensen , Michael E. Jørgensen , Michael I. Schwartzbach , Nils Klarlund, Automatic verification of pointer programs using monadic second-order logic, Proceedings of the ACM SIGPLAN 1997 conference on Programming language design and implementation, p.226-234, June 16-18, 1997, Las Vegas, Nevada, United States
|
| |
26
|
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.
|
 |
27
|
|
| |
28
|
|
| |
29
|
Kleene, S. 1987. Introduction to Metamathematics, Second Ed. North-Holland, Amsterdam.
|
| |
30
|
Kunen, K. 1998. Personal communication.
|
 |
31
|
|
| |
32
|
Lev-Ami, T. 2000. TVLA: A framework for Kleene based static analysis. M.S. Thesis, Tel-Aviv University, Tel-Aviv, Israel.
|
| |
33
|
|
 |
34
|
Tal Lev-Ami , Thomas Reps , Mooly Sagiv , Reinhard Wilhelm, Putting static analysis to work for verification: A case study, Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis, p.26-38, August 21-24, 2000, Portland, Oregon, United States
|
| |
35
|
Lifschitz, V. 1998. Personal communication.
|
| |
36
|
Morris, J. 1982. Assignment and linked data structures. In Theoretical Foundations of Programming Methodology, M. Broy and G. Schmidt, Eds., D. Reidel, Boston, 35--41.
|
| |
37
|
|
| |
38
|
|
| |
39
|
|
 |
40
|
|
 |
41
|
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
[doi> 10.1145/292540.292552]
|
| |
42
|
|
| |
43
|
|
 |
44
|
|
| |
45
|
Yahav, E., Reps, T., and Sagiv, M. 2001. LTL model checking for systems with unbounded number of dynamically created threads and objects. Tech. Rep. TR-1424, Comp. Sci. Dept., Univ. of Wisconsin, Madison, Wisc. March.
|
CITED BY 51
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Stephen Fink , Eran Yahav , Nurit Dor , G. Ramalingam , Emmanuel Geay, Effective typestate verification in the presence of aliasing, Proceedings of the 2006 international symposium on Software testing and analysis, July 17-20, 2006, Portland, Maine, USA
|
|
|
|
|
|
|
|
|
Gary T. Leavens , Jean-Raymond Abrial , Don Batory , Michael Butler , Alessandro Coglio , Kathi Fisler , Eric Hehner , Cliff Jones , Dale Miller , Simon Peyton-Jones , Murali Sitaraman , Douglas R. Smith , Aaron Stump, Roadmap for enhanced languages and methods to aid verification, Proceedings of the 5th international conference on Generative programming and component engineering, October 22-26, 2006, Portland, Oregon, USA
|
|
|
|
|
|
|
|
|
Greta Yorsh , Thomas Ball , Mooly Sagiv, Testing, abstraction, theorem proving: better together!, Proceedings of the 2006 international symposium on Software testing and analysis, July 17-20, 2006, Portland, Maine, USA
|
|
|
|
|
|
|
|
|
|
|
|
Ju Qian , Baowen Xu , Hongbo Min, Interstatement must aliases for data dependence analysis of heap locations, Proceedings of the 7th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering, p.17-24, June 13-14, 2007, San Diego, California, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Alexey Loginov , Eran Yahav , Satish Chandra , Stephen Fink , Noam Rinetzky , Mangala Nanda, Verifying dereference safety via expanding-scope analysis, Proceedings of the 2008 international symposium on Software testing and analysis, July 20-24, 2008, Seattle, WA, USA
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
INDEX TERMS
Primary Classification:
D.
Software
D.2
SOFTWARE ENGINEERING
D.2.5
Testing and Debugging
Subjects:
Symbolic execution
Additional Classification:
D.
Software
D.3
PROGRAMMING LANGUAGES
D.3.3
Language Constructs and Features
Subjects:
Data types and structures;
Dynamic storage management
E.
Data
E.1
DATA STRUCTURES
Subjects:
Graphs and networks;
Lists, stacks, and queues;
Trees
E.2
DATA STORAGE REPRESENTATIONS
Subjects:
Linked representations
F.
Theory of Computation
F.3
LOGICS AND MEANINGS OF PROGRAMS
F.3.1
Specifying and Verifying and Reasoning about Programs
Subjects:
Invariants;
Assertions
General Terms:
Algorithms,
Languages,
Theory,
Verification
Keywords:
3-valued logic,
Abstract interpretation,
alias analysis,
constraint solving,
destructive updating,
pointer analysis,
shape analysis,
static analysis
|