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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Abadi, M., Cardelli, L.: A Theory of Objects. Springer, New York (1996)
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)
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)
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)
Das, M.: Unification-based pointer analysis with directional assignments. In: SIGPLAN Conference on Programming Language Design and Implementation, pp. 35–46 (2000)
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)
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)
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)
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)
Galil, Z., Italiano, G.F.: A note on set union with arbitrary deunions. Information Processing Letters 37(6), 331–335 (1991)
Gay, D., Aiken, A.: Language support for regions. In: SIGPLAN Conference on Programming Language Design and Implementation, pp. 70–80 (2001)
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)
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)
Kodumal, J., Aiken, A.: Banshee: A toolkit for constructing constraint-based analyses (2005), http://banshee.sourceforge.net
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)
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)
McAllester, D.: On the complexity analysis of static analyses. Journal of the ACM 49(4), 512–537 (2002)
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)
Ragan-Kelley, J.: Personal communication (November 2004)
Ragan-Kelley, J.: Practical Interactive Lighting Design for RenderMan Scenes. Undergraduate thesis, Stanford University, Department of Computer Science (2004)
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)
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)
Sayeed, A.: Proshee (2005), http://proshee.sourceforge.net
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)
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)
Steffen, B.: Generating data flow analysis algorithms from modal specifications. Science of Computer Programming 21(2), 115–139 (1993)
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)
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)
Westbrook, J., Tarjan, R.E.: Amortized analysis of algorithms for set union with backtracking. SIAM Journal on Computing 18(1), 1–11 (1989)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)