Interprocedural Shape Analysis for Cutpoint-Free Programs [chapter]

Noam Rinetzky, Mooly Sagiv, Eran Yahav
2005 Lecture Notes in Computer Science  
We present a framework for interprocedural shape analysis, which is contextand flow-sensitive with the ability to perform destructive pointer updates. We limit our attention to cutpoint-free programs-programs in which reasoning on a procedure call only requires consideration of context reachable from the actual parameters. For such programs, we show that our framework is able to perform an efficient modular analysis. Technically, our analysis computes procedure summaries as transformers from
more » ... uts to outputs while ignoring parts of the heap not relevant to the procedure. This makes the analysis modular in the heap and thus allows reusing the effect of a procedure at different call-sites and even between different contexts occurring at the same call-site. We have implemented a prototype of our framework and used it to verify interesting properties of cutpoint-free programs, including partial correctness of a recursive quicksort implementation.
doi:10.1007/11547662_20 fatcat:3pncexkidffmjge2ajlnxizrje