Skip to main content

Incremental Points-to Analysis for Java via Edit Propagation

  • Conference paper
  • First Online:
Book cover Structured Object-Oriented Formal Language and Method (SOFL+MSVL 2014)

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

  • 489 Accesses

Abstract

Points-to analysis is a static analysis technique which computes the relationships between the program variables and the heap references. It has been widely used in program optimization, program understanding, and error detection. Inclusion-based points-to analysis computes the points-to sets in a program by translating the program into a set of inclusion constraints on the points-to sets and then solving them to yield the desired results. Yet the analysis faces a difficulty in that a program can be frequently changed in its development, and great efforts may be exhausted to re-generate the inclusion constraints and re-solve them. In this paper, we extend the inclusion-based points-to analysis to an incremental one called Inc-PTA. The essential idea of Inc-PTA is to sum up the program changes into an editscript of a sequence of successive edits, and then to propagate the edits to the constraints followed by taking a demand-driven points-to analysis of the program. We also discuss about the correctness of Inc-PTA, and believe that Inc-PTA can provide with a cost-effective solution to incremental points-to analysis.

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

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 34.99
Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 44.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

Institutional subscriptions

References

  1. Steensgaard, B.: Points-to analysis in almost linear time. In: Boehm Jr., H.J., Shackle, G.L.S. (eds.) POPL, pp. 32–41. ACM Press, New York (1996)

    Google Scholar 

  2. Andersen, L.O.: Program analysis and specialization for the c programming language. Master’s thesis, University of Copenhagen (1994)

    Google Scholar 

  3. Méndez-Lojo, M., Mathew, A., Pingali, K.: Parallel inclusion-based points-to analysis. In: Cook, W.R., Clarke, S., Rinard, M.C. (eds.) OOPSLA, pp. 428–443. ACM, New York (2010)

    Google Scholar 

  4. Méndez-Lojo, M., Burtscher, M., Pingali, K.: A gpu implementation of inclusion-based points-to analysis. In: Ramanujam, J., Sadayappan, P. (eds.) PPOPP, p. 107. ACM, New York (2012)

    Google Scholar 

  5. Lhoták, O., Smaragdakis, Y., Sridharan, M.: Pointer analysis (dagstuhl seminar 13162). Dagstuhl Rep. 3(4), 91–113 (2013)

    Google Scholar 

  6. Rountev, A., Kagan, S., Marlowe, T.: Interprocedural dataflow analysis in the presence of large libraries. In: Mycroft, A., Zeller, A. (eds.) CC 2006. LNCS, vol. 3923, pp. 2–16. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  7. Chase, D.R., Wegman, M.N., Zadeck, F.K.: Analysis of pointers and structures. In: Fischer, B.N. (ed.) PLDI, pp. 296–310. ACM, New York (1990)

    Google Scholar 

  8. Hardekopf, B., Lin, C.: Flow-sensitive pointer analysis for millions of lines of code. In: IEEE CGO, pp. 289–298 (2011)

    Google Scholar 

  9. Lu, Y., Shang, L., Xie, X., Xue, J.: An incremental points-to analysis with CFL-reachability. In: Jhala, R., De Bosschere, K. (eds.) Compiler Construction. LNCS, vol. 7791, pp. 61–81. Springer, Heidelberg (2013)

    Chapter  Google Scholar 

  10. Jenista, J., Eom, Y., Demsky, B.: Using disjoint reachability for parallelization. In: Knoop, J. (ed.) CC 2011. LNCS, vol. 6601, pp. 198–224. Springer, Heidelberg (2011)

    Chapter  Google Scholar 

  11. Vallee-Rai, R., Hendren, L.J.: Jimple: Simplifying java bytecode for analyses and transformations (1998)

    Google Scholar 

  12. Lhoták, O., Hendren, L.: Scaling java points-to analysis using SPARK. In: Hedin, G. (ed.) CC 2003. LNCS, vol. 2622, pp. 153–169. Springer, Heidelberg (2003)

    Chapter  Google Scholar 

  13. Gall, H., Fluri, B., Pinzger, M.: Change analysis with evolizer and changedistiller. IEEE Softw. 26(1), 26–33 (2009)

    Article  Google Scholar 

  14. Fluri, B., Würsch, M., Pinzger, M., Gall, H.: Change distilling: tree differencing for fine-grained source code change extraction. IEEE Trans. Softw. Eng. 33(11), 725–743 (2007)

    Article  Google Scholar 

  15. Vallée-Rai, R.C.P., Gagnon, E., Hendren, L.J., Lam, P., Sundaresan, V.: CASCON. In: MacKay, S.A., Johnson, J.H. (eds.) Soot-A Java Bytecode Optimization Framework, p. 13. IBM, San Diego (1999)

    Google Scholar 

  16. Hardekopf, B., Lin, C.: The ant and the grasshopper: fast and accurate pointer analysis for millions of lines of code. In: Ferrante, J., McKinley, K.S. (eds.) PLDI, pp. 290–299. ACM, New York (2007)

    Google Scholar 

  17. Tok, T.B., Guyer, S.Z., Lin, C.: Efficient flow-sensitive interprocedural data-flow analysis in the presence of pointers. In: Mycroft, A., Zeller, A. (eds.) CC 2006. LNCS, vol. 3923, pp. 17–31. Springer, Heidelberg (2006)

    Chapter  Google Scholar 

  18. Hardekopf, B., Lin, C.: Semi-sparse flow-sensitive pointer analysis. In: Shao, Z., Pierce, B.C. (eds.) POPL, pp. 226–238. ACM, New York (2009)

    Google Scholar 

  19. Gulwani, S., Srivastava, S., Venkatesan, R.: Program analysis as constraint solving. In: Gupta, R., Amarasinghe, S.P. (eds.) PLDI, pp. 281–292. ACM, New York (2008)

    Chapter  Google Scholar 

  20. Visser, W., Geldenhuys, J., Dwyer, M.B.: Green: reducing, reusing and recycling constraints in program analysis. In: Tracz, W., Robillard, M.P., Bultan, T. (eds.) SIGSOFT FSE, p. 58. ACM, New York (2012)

    Google Scholar 

  21. Allen, J.R., Kennedy, K., Porterfield, C., Warren, J.D.: Conversion of control dependence to data dependence. In: Wright, J.R., Landweber, L., Demers, A.J., Teitelbaum, T. (eds.) POPL, pp. 177–189. ACM, New York (1983)

    Google Scholar 

  22. Pollock, L.L., Soffa, M.L.: An incremental version of iterative data flow analysis. IEEE Trans. Soft. Eng. 15(12), 1537–1549 (1989)

    Article  Google Scholar 

  23. Burke, M.G., Ryder, B.G.: A critical analysis of incremental iterative data flow analysis algorithms. IEEE Trans. Soft. Eng. 16(7), 723–728 (1990)

    Article  Google Scholar 

  24. Carroll, S., Polychronopoulos, C.D.: A framework for incremental extensible compiler construction. Int. J. Parallel Program. 32(4), 289–316 (2004)

    Article  MATH  Google Scholar 

  25. Carroll, S., Polychronopoulos, C.D.: A framework for incremental extensible compiler construction. In: Banerjee, U., Gallivan, K., González, A. (eds.) ICS, pp. 53–62. ACM, New York (2003)

    Google Scholar 

  26. Yur, J.S., Ryder, B.G., Landi, W.: An incremental flow- and context-sensitive pointer aliasing analysis. In: Boehm, B.W., Garlan, D., Kramer, J. (eds.) ICSE, pp. 442–451. ACM, New York (1999)

    Chapter  Google Scholar 

  27. Vivien, F., Rinard, M.C.: Incrementalized pointer and escape analysis. In: Burke, M., Soffa, M.L. (eds.) PLDI, pp. 35–46. ACM, New York (2001)

    Google Scholar 

  28. Saha, D., Ramakrishnan, C.R.: Incremental and demand-driven points-to analysis using logic programming. In: Barahona, P., Felty, A.P. (eds.) PPDP, pp. 117–128. ACM, New York (2005)

    Google Scholar 

  29. Kodumal, J., Aiken, A.: Banshee: a scalable constraint-based analysis toolkit. In: Hankin, C., Siveroni, I. (eds.) SAS 2005. LNCS, vol. 3672, pp. 218–234. Springer, Heidelberg (2005)

    Chapter  Google Scholar 

Download references

Acknowledgments

We would like to thank the anonymous reviewers for their valuable and thorough comments. This work is supported by the National Natural Science Foundation of China (Grant No. 91118004 and 61100051).

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Yuting Chen .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2015 Springer International Publishing Switzerland

About this paper

Cite this paper

Chen, Y., Shi, Q., Miao, W. (2015). Incremental Points-to Analysis for Java via Edit Propagation. In: Liu, S., Duan, Z. (eds) Structured Object-Oriented Formal Language and Method. SOFL+MSVL 2014. Lecture Notes in Computer Science(), vol 8979. Springer, Cham. https://doi.org/10.1007/978-3-319-17404-4_11

Download citation

  • DOI: https://doi.org/10.1007/978-3-319-17404-4_11

  • Published:

  • Publisher Name: Springer, Cham

  • Print ISBN: 978-3-319-17403-7

  • Online ISBN: 978-3-319-17404-4

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics