Skip to main content

Banshee: A Scalable Constraint-Based Analysis Toolkit

  • Conference paper
Static Analysis (SAS 2005)

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 3672))

Included in the following conference series:

Abstract

We introduce Banshee, a toolkit for constructing constraint-based analyses. Banshee’s novel features include a code generator for creating customized constraint resolution engines, incremental analysis based on backtracking, and fast persistence. These features make Banshee useful as a foundation for production program analyses.

This research was supported in part by NASA Grant No. NNA04CI57A; NSF Grant Nos. CCR-0234689, CCR-0085949, and CCR-0326577. The information presented here does not necessarily reflect the position or the policy of the Government and no official endorsement should be inferred.

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. Abadi, M., Cardelli, L.: A Theory of Objects. Springer, New York (1996)

    MATH  Google Scholar 

  2. Aiken, A., Fähndrich, M., Foster, J., Su, Z.: A toolkit for constructing type- and constraint-based program analyses. In: Leroy, X., Ohori, A. (eds.) TIC 1998. LNCS, vol. 1473, pp. 78–96. Springer, Heidelberg (1998)

    Chapter  Google Scholar 

  3. Beyer, D., Noack, A., Lewerentz, C.: Simple and efficient relational querying of software structures. In: Proceedings of the 10th Working Conference on Reverse Engineering, p. 216. IEEE Computer Society, Los Alamitos (2003)

    Google Scholar 

  4. Ceri, S., Gottlob, G., Tanca, L.: What you always wanted to know about datalog (and never dared to ask). IEEE Transactions on Knowledge and Data Engineering 1(1), 146–166 (1989)

    Article  Google Scholar 

  5. Das, M.: Unification-based pointer analysis with directional assignments. In: SIGPLAN Conference on Programming Language Design and Implementation, pp. 35–46 (2000)

    Google Scholar 

  6. Demetrescu, C., Italiano, G.F.: Fully dynamic transitive closure: Breaking through the O(n 2) barrier. In: Proceedings of the 41st Annual Symposium on Foundations of Computer Science, p. 381. IEEE Computer Society, Los Alamitos (2000)

    Google Scholar 

  7. Driscoll, J.R., Sarnak, N., Sleator, D.D., Tarjan, R.E.: Making data structures persistent. In: Proceedings of the Eighteenth Annual ACM Symposium on Theory of Computing, pp. 109–121 (1986)

    Google Scholar 

  8. Fähndrich, M., Aiken, A.: Program analysis using mixed term and set constraints. In: Van Hentenryck, P. (ed.) SAS 1997. LNCS, vol. 1302, pp. 114–126. Springer, Heidelberg (1997)

    Chapter  Google Scholar 

  9. Fähndrich, M., Foster, J.S., Su, Z., Aiken, A.: Partial online cycle elimination in inclusion constraint graphs. In: Proceedings of the 1998 ACM SIGPLAN Conference on Programming Language Design and Implementation, Montreal, Canada, June 1998, pp. 85–96 (1998)

    Google Scholar 

  10. Galil, Z., Italiano, G.F.: A note on set union with arbitrary deunions. Information Processing Letters 37(6), 331–335 (1991)

    Article  MATH  MathSciNet  Google Scholar 

  11. Gay, D., Aiken, A.: Language support for regions. In: SIGPLAN Conference on Programming Language Design and Implementation, pp. 70–80 (2001)

    Google Scholar 

  12. Heintze, N., Tardieu, O.: Ultra-fast aliasing analysis using CLA: A million lines of c code in a second. In: SIGPLAN Conference on Programming Language Design and Implementation, pp. 254–263 (2001)

    Google Scholar 

  13. Horwitz, S., Reps, T., Sagiv, M.: Demand interprocedural dataflow analysis. In: Proceedings of the 3rd ACM SIGSOFT Symposium on Foundations of Software Engineering, pp. 104–115. ACM Press, New York (1995)

    Chapter  Google Scholar 

  14. Kodumal, J., Aiken, A.: Banshee: A toolkit for constructing constraint-based analyses (2005), http://banshee.sourceforge.net

  15. Kodumal, J., Aiken, A.: The set constraint/CFL reachability connection in practice. In: Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation, pp. 207–218. ACM Press, New York (2004)

    Chapter  Google Scholar 

  16. Lhoták, O., Hendren, L.: Jedd: A BDD-based relational extension of Java. In: Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation. ACM Press, New York (2004)

    Google Scholar 

  17. McAllester, D.: On the complexity analysis of static analyses. Journal of the ACM 49(4), 512–537 (2002)

    Article  MathSciNet  Google Scholar 

  18. Melski, D., Reps, T.: Interconvertbility of set constraints and context-free language reachability. In: Proceedings of the 1997 ACM SIGPLAN Symposium on Partial Evaluation and Semantics-based Program Manipulation, pp. 74–89. ACM Press, New York (1997)

    Chapter  Google Scholar 

  19. Ragan-Kelley, J.: Personal communication (November 2004)

    Google Scholar 

  20. Ragan-Kelley, J.: Practical Interactive Lighting Design for RenderMan Scenes. Undergraduate thesis, Stanford University, Department of Computer Science (2004)

    Google Scholar 

  21. Reps, T., Horwitz, S., Sagiv, M.: Precise interprocedural dataflow analysis via graph reachability. In: Proceedings of the 22nd Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, San Francisco, California, January 1995, pp. 49–61 (1995)

    Google Scholar 

  22. Roditty, L.: A faster and simpler fully dynamic transitive closure. In: Proceedings of the Fourteenth Annual ACM-SIAM Symposium on Discrete Algorithms, pp. 404–412. Society for Industrial and Applied Mathematics (2003)

    Google Scholar 

  23. Sayeed, A.: Proshee (2005), http://proshee.sourceforge.net

  24. Shapiro, M., Horwitz, S.: Fast and accurate flow-insensitive points-to analysis. In: Proceedings of the 24th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages (January 1997)

    Google Scholar 

  25. Steensgaard, B.: Points-to analysis in almost linear time. In: Proceedings of the 23th Annual ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, January 1996, pp. 32–41 (1996)

    Google Scholar 

  26. Steffen, B.: Generating data flow analysis algorithms from modal specifications. Science of Computer Programming 21(2), 115–139 (1993)

    Article  MATH  Google Scholar 

  27. Stoyle, G., Hicks, M., Bierman, G., Sewell, P., Neamtiu, I.: Mutatis mutandis: Safe and predictable dynamic software updating. In: POPL 2005: Proceedings of the 32nd ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 183–194 (2005)

    Google Scholar 

  28. Su, Z., Fähndrich, M., Aiken, A.: Projection merging: Reducing redundancies in inclusion constraint graphs. In: Proceedings of the 27th ACM SIGPLAN-SIGACT Symposium on Principles of Programming Languages, pp. 81–95. ACM Press, New York (2000)

    Chapter  Google Scholar 

  29. Westbrook, J., Tarjan, R.E.: Amortized analysis of algorithms for set union with backtracking. SIAM Journal on Computing 18(1), 1–11 (1989)

    Article  MATH  MathSciNet  Google Scholar 

  30. Whaley, J., Lam, M.S.: Cloning-based context-sensitive pointer alias analysis using binary decision diagrams. In: Proceedings of the Conference on Programming Language Design and Implementation. ACM Press, New York (2004)

    Google Scholar 

  31. Yannakakis, M.: Graph-theoretic methods in database theory. In: Proceedings of the Ninth ACM SIGACT-SIGMOD-SIGART Symposium on Principles of Database Systems, pp. 230–242. ACM Press, New York (1990)

    Chapter  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2005 Springer-Verlag Berlin Heidelberg

About this paper

Cite this paper

Kodumal, J., Aiken, A. (2005). Banshee: A Scalable Constraint-Based Analysis Toolkit. In: Hankin, C., Siveroni, I. (eds) Static Analysis. SAS 2005. Lecture Notes in Computer Science, vol 3672. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11547662_16

Download citation

  • DOI: https://doi.org/10.1007/11547662_16

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-540-28584-7

  • Online ISBN: 978-3-540-31971-9

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics