Abstract
The parametric shape analysis framework of Sagiv, Reps, and Wilhelm [45,46] uses three-valued structures as dataflow lattice elements to represent sets of states at different program points. The recent work of Yorsh, Reps, Sagiv, Wilhelm [48,50] introduces a family of formulas in (classical, two-valued) logic that are isomorphic to three-valued structures [46] and represent the same sets of concrete states.
In this paper we introduce a larger syntactic class of formulas that has the same expressive power as the formulas in [48]. The formulas in [48] can be viewed as a normal form of the formulas in our syntactic class; we give an algorithm for transforming our formulas to this normal form. Our formulas make it obvious that the constraints are closed under all boolean operations and therefore form a boolean algebra. Our algorithm also gives a reduction of the entailment and the equivalence problems for these constraints to the satisfiability problem.
This research was supported in part by DARPA Contract F33615-00-C-1692, NSF Grant CCR00-86154, NSF Grant CCR00-63513, and the Singapore-MIT Alliance.
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
Back, R.-J., von Wright, J.: Refinement Calculus. Springer, Heidelberg (1998)
Ball, T., Majumdar, R., Millstein, T., Rajamani, S.K.: Automatic predicate abstraction of C programs. In: Proc. ACM PLDI (2001)
Ball, T., Podelski, A., Rajamani, S.K.: Relative completeness of abstraction refinement for software model checking. In: Katoen, J.-P., Stevens, P. (eds.) TACAS 2002. LNCS, vol. 2280, p. 158. Springer, Heidelberg (2002)
Benedikt, M., Reps, T., Sagiv, M.: A decidable logic for linked data structures. In: Proc. 8th ESOP (1999)
Berndl, M., Lhoták, O., Qian, F., Hendren, L., Umanee, N.: Points-to analysis using BDDs. In: PLDI 2003 (2003)
Blanchet, B., Cousot, P., Cousot, R., Feret, J., Mauborgne, L., Miné, A., Monniaux, D., Rival, X.: A Static Analyzer for Large Safety-Critical Software. In: ACM PLDI, June 2003, ACM, New York (2003)
Bozga, M., Iosif, R., Laknech, Y.: Storeless semantics and alias logic. In: ACM PEPM 2003, pp. 55–65. ACM Press, New York (2003)
Bush, W.R., Pincus, J.D., Sielaff, D.J.: A static analyzer for finding dynamic programming errors. Software—Practice & Experience 30(7), 775–802 (2000)
Chase, D.R., Wegman, M., Kenneth Zadeck, F.: Analysis of pointers and structures. In: Proc. ACM PLDI (1990)
Clarke, L., Richardson, D.: Symbolic evaluation methods for program analysis. In: Program Flow Analysis: Theory and Applications, ch. 9, Prentice-Hall, Inc., Englewood Cliffs (1981)
Dams, D., Namjoshi, K.S.: Shape analysis through predicate abstraction and model checking. In: Zuck, L.D., Attie, P.C., Cortesi, A., Mukhopadhyay, S. (eds.) VMCAI 2003. LNCS, vol. 2575, pp. 310–323. Springer, Heidelberg (2002)
Deutsch, A.: Interprocedural may-alias analysis for pointers: Beyond k-limiting. In: Proceedings of the ACM SIGPLAN 1994 conference on Programming language design and implementation, pp. 230–241. ACM Pres, New York (1994)
Engler, D., Chelf, B., Chou, A., Hallem, S.: Checking system rules using system-specific, programmer-written compiler extensions. In: Proc. 4th USENIX OSDI (2000)
Flanagan, C., Rustan, K., Leino, M., Lilibridge, M., Nelson, G., Saxe, J.B., Stata, R.: Extended Static Checking for Java. In: Proc. ACM PLDI (2002)
Fradet, P., Le Métayer, D.: Shape types. In: Proc. 24th ACM POPL (1997)
Ghiya, R., Hendren, L.: Is it a tree, a DAG, or a cyclic graph? In: Proc. 23rd ACM POPL (1996)
Graf, S., Saidi, H.: Construction of abstract state graphs with pvs. In: Grumberg, O. (ed.) CAV 1997. LNCS, vol. 1254, pp. 72–83. Springer, Heidelberg (1997)
Hoare, C.A.R., Jifeng, H.: A trace model for pointers and objects. In: Guerraoui, R. (ed.) ECOOP 1999. LNCS, vol. 1628, p. 1. Springer, Heidelberg (1999)
Holzmann, G.J.: Static source code checking for user-defined properties. In: Proc. IDPT 2002, Pasadena, CA (June 2002)
Hummel, J., Hendren, L.J., Nicolau, A.: A general data dependence test for dynamic, pointer-based data structures. In: Proc. ACM PLDI (1994)
Ishtiaq, S., O’Hearn, P.W.: BI as an assertion language for mutable data structures. In: Proc. 28th ACM POPL (2001)
Jones, N.D., Muchnick, S.S.: Flexible approach to interprocedural data flow analysis and programs with recursive data structures. In: Proc. 9th ACM POPL (1982)
Klarlund, N., Møller, A., Schwartzbach, M.I.: MONA implementation secrets. In: Yu, S., Păun, A. (eds.) CIAA 2000. LNCS, vol. 2088, p. 182. Springer, Heidelberg (2001)
Kleene, S.C.: Introduction to Metamathematics. D. Van Nostrand Company, Inc., Princeton, New Jersey (1952); fifth reprint (1967)
Kuncak, V., Lam, P., Rinard, M.: A language for role specifications. In: Dietz, H.G. (ed.) LCPC 2001. LNCS, vol. 2624, Springer, Heidelberg (2003)
Kuncak, V., Lam, P., Rinard, M.: Roles are really great! Technical Report 822, Laboratory for Computer Science, Massachusetts Institute of Technology (2001)
Kuncak, V., Lam, P., Rinard, M.: Role analysis. In: Proc. 29th POPL (2002)
Kuncak, V., Rinard, M.: Typestate checking and regular graph constraints. Technical Report 863, MIT Laboratory for Computer Science (2002)
Kuncak, V., Rinard, M.: Existential heap abstraction entailment is undecidable. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, Springer, Heidelberg (2003)
Kuncak, V., Rinard, M.: On role logic. Technical Report 925, MIT CSAIL (2003)
Kuncak, V., Rinard, M.: On the boolean algebra of shape analysis constraints. Technical report, MIT CSAIL (August 2003)
Larus, J.R., Hilfinger, P.N.: Detecting conflicts between structure accesses. In: Proc. ACM PLDI, Atlanta, GA (June 1988)
Lev-Ami, T.: TVLA: A framework for kleene based logic static analyses. Master’s thesis, Tel-Aviv University, Israel (2000)
Lev-Ami, T., Reps, T., Sagiv, M., Wilhelm, R.: Putting static analysis to work for verification: A case study. In: International Symposium on Software Testing and Analysis (2000)
Logozzo, F.: Class-level modular analysis for object oriented languages. In: Cousot, R. (ed.) SAS 2003. LNCS, vol. 2694, Springer, Heidelberg (2003)
Manevich, R., Ramalingam, G., Field, J., Goyal, D., Sagiv, M.: Compactly representing first-order structures for static analysis. In: Proc. 9th International Static Analysis Symposium, pp. 196–212 (2002)
Møller, A., Schwartzbach, M.I.: The Pointer Assertion Logic Engine. In: Proc. ACM PLDI (2001)
Nielson, F., Nielson, H.R., Sagiv, M.: Kleene’s logic with equality. Information Processing Letters 80(3), 131–137 (2001)
Reps, T., Sagiv, M., Loginov, A.: Finite differencing of logical formulas for static analysis. In: Degano, P. (ed.) ESOP 2003. LNCS, vol. 2618, pp. 380–398. Springer, Heidelberg (2003)
Reps, T., Sagiv, M., Yorsh, G.: Symbolic implementation of the best transformer. Technical Report TR-1468, University of Wisconsin (January 2003)
Reps, T., Sagiv, M., Yorsh, G.: Symbolic implementation of the best transformer. In: Steffen, B., Levi, G. (eds.) VMCAI 2004. LNCS, vol. 2937, pp. 252–266. Springer, Heidelberg (2004)
Rinetzky, N.: Interprocedural shape analysis. Master’s thesis, Technion - Israel Institute of Technology (2000)
Rinetzky, N., Sagiv, M.: Interprocedual shape analysis for recursive programs. In: Proc. 10th International Conference on Compiler Construction (2001)
Sagiv, M., Reps, T., Wilhelm, R.: Solving shape-analysis problems in languages with destructive updating. ACM TOPLAS 20(1), 1–50 (1998)
Sagiv, M., Reps, T., Wilhelm, R.: Parametric shape analysis via 3-valued logic. In: Proc. 26th ACM POPL (1999)
Sagiv, M., Reps, T., Wilhelm, R.: Parametric shape analysis via 3-valued logic. ACM TOPLAS 24(3), 217–298 (2002)
Smith, F., Walker, D., Morrisett, G.: Alias types. In: Smolka, G. (ed.) ESOP 2000. LNCS, vol. 1782, p. 366. Springer, Heidelberg (2000)
Yorsh, G.: Logical characterizations of heap abstractions. Master’s thesis, Tel- Aviv University (March 2003)
Yorsh, G., Reps, T., Sagiv, M.: Symbolically computing mostprecise abstract operations for shape analysis. Technical report, Tel-Aviv University (September 2003) (forthcoming)
Yorsh, G., Reps, T., Sagiv, M., Wilhelm, R.: Logical characterizations of heap abstractions. Technical report, University of Wisconsin, Madison (January 2003)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2004 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Kuncak, V., Rinard, M. (2004). Boolean Algebra of Shape Analysis Constraints. In: Steffen, B., Levi, G. (eds) Verification, Model Checking, and Abstract Interpretation. VMCAI 2004. Lecture Notes in Computer Science, vol 2937. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-24622-0_7
Download citation
DOI: https://doi.org/10.1007/978-3-540-24622-0_7
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-20803-7
Online ISBN: 978-3-540-24622-0
eBook Packages: Springer Book Archive