ABSTRACT
Programs written in languages such as Java and C# maintain most of their state on the heap. The size and complexity of these programs pose a challenge in understanding and maintaining them; Heap analysis by summarizing the state of heap graphs assists programmers in these tasks. In this paper we present a novel dynamic heap analysis technique that uses spectra of the heap graphs to summarize them. These summaries capture the shape of recursive data structures as dynamic invariants or likely properties of these structures that must be preserved after any destructive update. Initial experiments show that this approach can generate meaningful summaries for a range of subject structures.
- I. Balaban, A. Pnueli, and L. D. Zuck. Shape analysis by predicate abstraction. In VMCAI, 2005. Google ScholarDigital Library
- C. Boyapati, S. Khurshid, and D. Marinov. Korat: automated testing based on Java predicates. In ISSTA, 2002. Google ScholarDigital Library
- D. M. Cvetkovic, M. Doob, and H. Sachs. Spectra of Graphs: Theory and Applications. John Wiley & Sons Inc, 1998.Google Scholar
- M. D. Ernst. Dynamically discovering likely program invariants. PhD thesis, 2000. Google ScholarDigital Library
- C. Flanagan, K. R. M. Leino, M. Lillibridge, G. Nelson, J. B. Saxe, and R. Stata. Extended static checking for java. In PLDI, 2002. Google ScholarDigital Library
- R. Ghiya and L. J. Hendren. Is it a tree, a dag, or a cyclic graph? a shape analysis for heap-directed pointers in C. In POPL, 1996. Google ScholarDigital Library
- M. Z. Malik, A. Pervaiz, E. Uzuncaova, and S. Khurshid. Deryaft: a tool for generating representation invariants of structurally complex data. In ICSE, 2008. Google ScholarDigital Library
- A. Møller and M. I. Schwartzbach. The pointer assertion logic engine. In PLDI, 2001. Google ScholarDigital Library
- J. D. Rutter. A serial implementation of cuppen's divide and conquer algorithm. Technical report, Berkeley, CA, USA, 1991. Google ScholarDigital Library
- S. Sagiv, T. W. Reps, and R. Wilhelm. Solving shape-analysis problems in languages with destructive updating. TOPLAS, 20(1), 1998. Google ScholarDigital Library
- P. Zhu and R. C. Wilson. A study of graph spectra for comparing graphs. In BMVC, 2005.Google ScholarCross Ref
Index Terms
- Dynamic shape analysis of program heap using graph spectra (NIER track)
Recommendations
Dynamic Shape Analysis Using Spectral Graph Properties
ICST '12: Proceedings of the 2012 IEEE Fifth International Conference on Software Testing, Verification and ValidationDynamically allocated data structures pervade imperative and object-oriented programs. Automated analysis and testing of such programs requires reasoning about their data structures. The structures often have complex structural properties, such as a ...
Precise shape analysis using field sensitivity
We present a static shape analysis technique to infer the shapes of the heap structures created by a program at run time. Our technique is field sensitive in that it uses field information to compute the shapes. The shapes of the heap structures are ...
Computation of Alias Sets from Shape Graphs for Comparison of Shape Analysis Precision
SCAM '11: Proceedings of the 2011 IEEE 11th International Working Conference on Source Code Analysis and ManipulationVarious shape analysis algorithms have been introduced but their relation in terms of precision often remains unclear as different analyses use different representations of analysis results. The aim of our work is to extract alias sets from shape ...
Comments