Skip to main content

Client-Driven Pointer Analysis

  • Conference paper
  • First Online:
Static Analysis (SAS 2003)

Part of the book series: Lecture Notes in Computer Science ((LNCS,volume 2694))

Included in the following conference series:

Abstract

This paper presents a new client-driven pointer analysis algorithm that automatically adjusts its precision in response to the needs of client analyses. We evaluate our algorithm on 18 real C programs, using five significant error detection problems as clients. We compare the accuracy and performance of our algorithm against several commonly-used fixed-precision algorithms. We find that the client-driven approach effectively balances cost and precision, often producing results as accurate as fixed-precision algorithms that are many times more costly. Our algorithm works because many client problems only need a small amount of extra precision applied to the right places in each input program.

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 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

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. L. Andersen. Program Analysis and Specialization for the C Programming Language. PhD thesis, University of Copenhagen, DIKU, DIKU report 94/19, 1994.

    Google Scholar 

  2. T. Ball and S. K. Rajamani. Automatically validating temporal safety properties of interfaces. In International SPIN Workshop on Model Checking of Software, May 2001.

    Google Scholar 

  3. D. R. Chase, M. Wegman, and F. K. Zadeck. Analysis of pointers and structures. ACM SIGPLAN Notices, 25(6):296–310, June 1990.

    Article  Google Scholar 

  4. R. Cytron, J. Ferrante, B. K. Rosen, M. K. Wegman, and F. K. Zadeck. An efficient method of computing static single assignment form. In 16th Annual ACM Symposium on Principles of Programming Languages, pages 25–35, 1989.

    Google Scholar 

  5. M. Das, S. Lerner, and M. Seigle. ESP: path-sensitive program verification in polynomial time. In ACM SIGPLAN Conference on Programming Language Design and Implementation, volume 37, 5, pages 57–68, 2002.

    Google Scholar 

  6. A. Diwan, K. S. McKinley, and J. E. B. Moss. Using types to analyze and optimize object-oriented programs. ACM Transactions on Programming Languages and Systems, 23, 2001.

    Google Scholar 

  7. J. S. Foster, M. Fahndrich, and A. Aiken. Polymorphic versus monomorphic flow-insensitive points-to analysis for C. In Static Analysis Symposium, pages 175–198, 2000.

    Google Scholar 

  8. J. S. Foster, T. Terauchi, and A. Aiken. Flow-sensitive type qualifiers. In Proceedings of the ACM SIGPLAN 2002 Conference on Programming Language Design and Implementation, volume 37(5) of ACM SIGPLAN Notices, pages 1–12, 2002.

    Article  Google Scholar 

  9. S. Z. Guyer and C. Lin. An annotation language for optimizing software libraries. In Second Conference on Domain Specific Languages, pages 39–52, October 1999.

    Google Scholar 

  10. S. Z. Guyer and C. Lin. Optimizing the use of high performance software libraries. In Languages and Compilers for Parallel Computing, pages 221–238, August 2000.

    Google Scholar 

  11. N. Heintze and O. Tardieu. Demand-driven pointer analysis. In ACM SIGPLAN Conference on Programming Language Design and Implementation, pages 24–34, 2001.

    Google Scholar 

  12. M. Hind. Pointer analysis: Haven’t we solved this problem yet? In Proceedings of the 2001 ACM SIGPLAN — SIGSOFT Workshop on Program Analysis for Software Tools and Engeneering (PASTE-01), pages 54–61, 2001.

    Google Scholar 

  13. M. Hind and A. Pioli. Evaluating the effectiveness of pointer alias analyses. Science of Computer Programming, 39(1):31–55, January 2001.

    Article  MATH  Google Scholar 

  14. S. Horwitz, T. Reps, and M. Sagiv. Demand Interprocedural Dataflow Analysis. In Proceedings of SIGSOFT’95 Third ACM SIGSOFT Symposium on the Foundations of Software Engineering, pages 104–115, October 1995.

    Google Scholar 

  15. J. Plevyak and A. A. Chien. Precise concrete type inference for object-oriented languages. ACM SIGPLAN Notices, 29(10):324–324, October 1994.

    Article  Google Scholar 

  16. E. Ruf. Context-insensitive alias analysis reconsidered. In SIGPLAN Conference on Programming Language Design and Implementation, pages 13–22, 1995.

    Google Scholar 

  17. U. Shankar, K. Talwar, J. S. Foster, and D. Wagner. Detecting format string vulnerabilities with type qualifiers. In Proceedings of the 10th USENIX Security Symposium, 2001.

    Google Scholar 

  18. M. Shapiro and S. Horwitz. The effects of the precision of pointer analysis. Lecture Notes in Computer Science, 1302, 1997.

    Google Scholar 

  19. P. Stocks, B. G. Ryder, W. Landi, and S. Zhang. Comparing flow and context sensitivity on the modification-side-effects problem. In International Symposium on Software Testing and Analysis, pages 21–31, 1998.

    Google Scholar 

  20. R. Strom and S. Yemini. Typestate: A programming language concept for enhancing software reliabiity. IEEE Transactions on Software Engineering, 12(1):157–171, 1986.

    Google Scholar 

  21. L. Wall, T. Christiansen, and J. Orwant. Programming Perl, 3rd Edition. O’Reilly, July 2000.

    Google Scholar 

  22. R. P. Wilson and M. S. Lam. Efficient context-sensitive pointer analysis for C programs. In Proceedings of the ACM SIGPLAN’95 Conference on Programming Language Design and Implementation, pages 1–12, 1995.

    Google Scholar 

  23. S. Zhang, B. G. Ryder, and W. A. Landi. Experiments with combined analysis for pointer aliasing. ACM SIGPLAN Notices, 33(7):11–18, July 1998.

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2003 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Guyer, S.Z., Lin, C. (2003). Client-Driven Pointer Analysis. In: Cousot, R. (eds) Static Analysis. SAS 2003. Lecture Notes in Computer Science, vol 2694. Springer, Berlin, Heidelberg. https://doi.org/10.1007/3-540-44898-5_12

Download citation

  • DOI: https://doi.org/10.1007/3-540-44898-5_12

  • Published:

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-40325-8

  • Online ISBN: 978-3-540-44898-3

  • eBook Packages: Springer Book Archive

Publish with us

Policies and ethics