Skip to main content

Interprocedural Shape Analysis for Effectively Cutpoint-Free Programs

  • Chapter

Part of the book series: Lecture Notes in Computer Science ((LNTCS,volume 7797))

Abstract

We present a framework for local interprocedural shape analysis that computes procedure summaries as transformers of procedure-local heaps (the parts of the heap that the procedure may reach). A main challenge in procedure-local shape analysis is the handling of cutpoints, objects that separate the input heap of an invoked procedure from the rest of the heap, which—from the viewpoint of that invocation—is non-accessible and immutable.

In this paper, we limit our attention to effectively cutpoint-free programs—programs in which the only objects that separate the callee’s heap from the rest of the heap, when considering live reference fields, are the ones pointed to by the actual parameters of the invocation. This limitation (and certain variations of it, which we also describe) simplifies the local-reasoning about procedure calls because the analysis needs not track cutpoints. Furthermore, our analysis (conservatively) verifies that a program is effectively cutpoint-free,

This is a preview of subscription content, log in via an institution.

Buying options

Chapter
USD   29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD   39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD   54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Learn about institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Arnold, G., Manevich, R., Sagiv, M., Shaham, R.: Combining Shape Analyses by Intersecting Abstractions. In: Emerson, E.A., Namjoshi, K.S. (eds.) VMCAI 2006. LNCS, vol. 3855, pp. 33–48. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  2. Calcagno, C., Distefano, D., O’Hearn, P., Yang, H.: Compositional shape analysis by means of bi-abduction. In: Symp. on Princ. of Prog. Lang. (POPL), pp. 289–300. ACM (2009)

    Google Scholar 

  3. Chase, D.R., Wegman, M., Zadeck, F.: Analysis of pointers and structures. In: Conf. on Prog. Lang. Design and Impl., PLDI (1990)

    Google Scholar 

  4. Chong, S., Rugina, R.: Static analysis of accessed regions in recursive data structures. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 463–482. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  5. Cousot, P., Cousot, R.: Abstract interpretation: A unified lattice model for static analysis of programs by construction of approximation of fixed points. In: Symp. on Princ. of Prog. Lang. (POPL), pp. 238–252. ACM Press, New York (1977)

    Google Scholar 

  6. Cousot, P., Cousot, R.: Static determination of dynamic properties of recursive procedures. In: Neuhold, E.J. (ed.) Formal Descriptions of Programming Concepts (IFIP WG 2.2, St. Andrews, Canada), pp. 237–277. North-Holland (August 1977)

    Google Scholar 

  7. Deutsch, A.: Interprocedural alias analysis for pointers: Beyond k-limiting. In: Conf. on Prog. Lang. Design and Impl. (PLDI) (1994)

    Google Scholar 

  8. Gotsman, A., Berdine, J., Cook, B.: Interprocedural Shape Analysis with Separated Heap Abstractions. In: Yi, K. (ed.) SAS 2006. LNCS, vol. 4134, pp. 240–260. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  9. Hackett, B., Rugina, R.: Region-based shape analysis with tracked locations. In: Symp. on Princ. of Prog. Lang. (POPL) (2005)

    Google Scholar 

  10. Ishtiaq, S.S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: Symp. on Princ. of Prog. Lang. (POPL) (2001)

    Google Scholar 

  11. Jeannet, B., Loginov, A., Reps, T., Sagiv, M.: A Relational Approach to Interprocedural Shape Analysis. In: Giacobazzi, R. (ed.) SAS 2004. LNCS, vol. 3148, pp. 246–264. Springer, Heidelberg (2004)

    Chapter  Google Scholar 

  12. Knoop, J., Steffen, B.: The interprocedural coincidence theorem. In: Int. Conf. on Comp. Construct. (CC) (1992)

    Google Scholar 

  13. Lev-Ami, T., Sagiv, M.: . TVLA: A framework for Kleene based static analysis. In: International Static Analysis Symposium (SAS) (2000), http://www.math.tau.ac.il/~tvla

  14. Marron, M., Hermenegildo, M., Kapur, D., Stefanovic, D.: Efficient context-sensitive shape analysis with graph based heap models. In: Int. Conf. on Comp. Construct. (CC), pp. 245–259 (2008)

    Google Scholar 

  15. Noble, J., Biddle, R., Tempero, E., Potanin, A., Clarke, D.: Towards a model of encapsulation. In: The First International Workshop on Aliasing, Confinement and Ownership in Object-Oriented Programming (IWACO) (2003)

    Google Scholar 

  16. Plotkin, G.D.: A Structural Approach to Operational Semantics. Technical Report DAIMI FN-19, University of Aarhus (1981)

    Google Scholar 

  17. Reps, T., Horwitz, S., Sagiv, M.: Precise interprocedural dataflow analysis via graph reachability. In: Symp. on Princ. of Prog. Lang. (POPL) (1995)

    Google Scholar 

  18. Reynolds, J.: Separation logic: a logic for shared mutable data structures. In: Symp. on Logic in Computer Science (LICS) (2002)

    Google Scholar 

  19. Rinetzky, N.: Interprocedural and Modular Local Heap Shape Analysis. PhD thesis, Tel Aviv University (June 2008)

    Google Scholar 

  20. Rinetzky, N., Bauer, J., Reps, T., Sagiv, M., Wilhelm, R.: A semantics for procedure local heaps and its abstractions. In: Symp. on Princ. of Prog. Lang. (POPL) (2005)

    Google Scholar 

  21. Rinetzky, N., Poetzsch-Heffter, A., Ramalingam, G., Sagiv, M., Yahav, E.: Modular Shape Analysis for Dynamically Encapsulated Programs. In: De Nicola, R. (ed.) ESOP 2007. LNCS, vol. 4421, pp. 220–236. Springer, Heidelberg (2007)

    Chapter  Google Scholar 

  22. Rinetzky, N., Sagiv, M.: Interprocedural shape analysis for recursive programs. In: Int. Conf. on Comp. Construct. (CC) (2001)

    Google Scholar 

  23. Rinetzky, N., Sagiv, M., Yahav, E.: Interprocedural Shape Analysis for Cutpoint-Free Programs. In: Hankin, C., Siveroni, I. (eds.) SAS 2005. LNCS, vol. 3672, pp. 284–302. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

  24. Rubinstein, S.: On the utility of cutpoints for monitoring program execution. Master’s thesis, Tel Aviv University, Tel Aviv, Israel (2006)

    Google Scholar 

  25. Sagiv, M., Reps, T., Wilhelm, R.: Parametric shape analysis via 3-valued logic. Trans. on Prog. Lang. and Syst. (TOPLAS) 24(3), 217–298 (2002)

    Article  Google Scholar 

  26. Shaham, R., Yahav, E., Kolodner, E.K., Sagiv, M.: Establishing Local Temporal Heap Safety Properties with Applications to Compile-time Memory Management. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, pp. 483–503. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  27. Sharir, M., Pnueli, A.: Two approaches to interprocedural data flow analysis. In: Muchnick, S.S., Jones, N.D. (eds.) Program Flow Analysis: Theory and Applications, ch.7, pp. 189–234. Prentice-Hall, Englewood Cliffs, NJ (1981)

    Google Scholar 

  28. Yang, H., Lee, O., Berdine, J., Calcagno, C., Cook, B., Distefano, D., O’Hearn, P.W.: Scalable Shape Analysis for Systems Code. In: Gupta, A., Malik, S. (eds.) CAV 2008. LNCS, vol. 5123, pp. 385–398. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2013 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Kreiker, J., Reps, T., Rinetzky, N., Sagiv, M., Wilhelm, R., Yahav, E. (2013). Interprocedural Shape Analysis for Effectively Cutpoint-Free Programs. In: Voronkov, A., Weidenbach, C. (eds) Programming Logics. Lecture Notes in Computer Science, vol 7797. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-37651-1_17

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-37651-1_17

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-37650-4

  • Online ISBN: 978-3-642-37651-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics