Advertisement

Banshee: A Scalable Constraint-Based Analysis Toolkit

  • John Kodumal
  • Alex Aiken
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3672)

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.

Keywords

Constraint Resolution Constraint Graph Incremental Analysis Type Judgment Program Language Design 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Abadi, M., Cardelli, L.: A Theory of Objects. Springer, New York (1996)MATHGoogle Scholar
  2. 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)CrossRefGoogle Scholar
  3. 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. 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)CrossRefGoogle Scholar
  5. 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. 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. 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. 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)CrossRefGoogle Scholar
  9. 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. 10.
    Galil, Z., Italiano, G.F.: A note on set union with arbitrary deunions. Information Processing Letters 37(6), 331–335 (1991)MATHCrossRefMathSciNetGoogle Scholar
  11. 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. 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. 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)CrossRefGoogle Scholar
  14. 14.
    Kodumal, J., Aiken, A.: Banshee: A toolkit for constructing constraint-based analyses (2005), http://banshee.sourceforge.net
  15. 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)CrossRefGoogle Scholar
  16. 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. 17.
    McAllester, D.: On the complexity analysis of static analyses. Journal of the ACM 49(4), 512–537 (2002)CrossRefMathSciNetGoogle Scholar
  18. 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)CrossRefGoogle Scholar
  19. 19.
    Ragan-Kelley, J.: Personal communication (November 2004)Google Scholar
  20. 20.
    Ragan-Kelley, J.: Practical Interactive Lighting Design for RenderMan Scenes. Undergraduate thesis, Stanford University, Department of Computer Science (2004)Google Scholar
  21. 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. 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. 23.
    Sayeed, A.: Proshee (2005), http://proshee.sourceforge.net
  24. 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. 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. 26.
    Steffen, B.: Generating data flow analysis algorithms from modal specifications. Science of Computer Programming 21(2), 115–139 (1993)MATHCrossRefGoogle Scholar
  27. 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. 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)CrossRefGoogle Scholar
  29. 29.
    Westbrook, J., Tarjan, R.E.: Amortized analysis of algorithms for set union with backtracking. SIAM Journal on Computing 18(1), 1–11 (1989)MATHCrossRefMathSciNetGoogle Scholar
  30. 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. 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)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2005

Authors and Affiliations

  • John Kodumal
    • 1
  • Alex Aiken
    • 2
  1. 1.EECS DepartmentUniversity of CaliforniaBerkeley
  2. 2.Computer Science DepartmentStanford University 

Personalised recommendations