## Parametric Shape Analysis via 3-Valued Logic (2001)

### Cached

### Download Links

Citations: | 657 - 79 self |

### Citations

2295 | Abstract interpretation: A unified lattice model for static analysis of programs by construction or approximation of fixpoints - Cousot, Cousot - 1977 |

1695 | A Discipline of Programming - Dijkstra - 1976 |

925 |
Introduction to Metamathematics
- KLEENE
- 1952
(Show Context)
Citation Context ...?n. To express the property "program variables x and y are not may-aliases", we write the formula 8v : :(x(v)sy(v)): (2) 1.1.2 Shape Analysis via Three-Valued Logic We use Kleene's three-val=-=ued logic [Kle87] (which ha-=-s a third truth value that signifies "unknown") to create a shape-analysis algorithm automatically from a specification. Kleene's logic is useful for shape analysis because we only have part... |

910 | Mobile ambients - Cardelli, Gordon - 1378 |

840 | Counterexample-guided abstraction refinement - Clarke, Grumberg, et al. - 2000 |

764 | Systematic design of program analysis frameworks
- Cousot, Cousot
- 1979
(Show Context)
Citation Context ... applied at any step (e.g., right after focus and before [[st]]) and may improve precision. It is worthwhile noting that both focus and coerce are semantic-reduction operations (originally defined in =-=[CC79]-=-). That is, they convert a set of three-valued structures into a more precise set of structures that describe the same set of stores. This property, together with the correctness of the structure tran... |

742 | Construction of abstract state graphs with PVS - Graf, Saidi - 1997 |

545 | The Science of Programming - Gries - 1981 |

414 | Zadeck. Analysis of pointers and structures
- Chase, Wegman, et al.
- 1990
(Show Context)
Citation Context ...82, LH88, HPR89, CWZ90, Str92, AW93, PCK93, Wan94, SRW98]. A common feature of these algorithms is that they represent multiple run-time locations by a single "shape-node", often called summ=-=ary-nodes [CWZ90]. One way -=-of looking at these algorithms is that "shape graphs" are indirect representations of store invariants. 1.1 Main Results This paper presents a parametric framework for shape analysis. Differ... |

321 | Descriptive Complexity - Immerman - 1998 |

309 | Solving shape-analysis problems in languages with destructive updating
- Sagiv, Reps, et al.
- 1998
(Show Context)
Citation Context ...ure 3: The three structures that result from the first abstract execution of st 4 by the improved abstract-interpretation method of Section 5. traversed. (Thus, Section 5 generalizes the algorithm of =-=[SRW96]-=-.) As we will see in Section 5, this allows us to determine the correct shape descriptors for the data structures used in the reverse program. To perform a more precise abstract interpretation of prog... |

252 | Interprocedural may-alias analysis for pointers: Beyond k-limiting - Deutsch - 1994 |

214 | Flow analysis and optimization of LISPlike structures
- Jones, Muchnick
- 1981
(Show Context)
Citation Context ...garbage element)? garbage collection r x (v) Is v (transitively) reachable from pointer separating disjoint [SRW98, p.38] variable x? data structures c(v) Is v on a directed cycle? reference counting =-=[JM81]-=- c f:b (v) Does a field-f dereference from v, followed doubly-linked lists [HHN92, PCK93] by a field-b deference, yield v? c b:f (v) Does a field-b dereference from v, followed doubly-linked lists [HH... |

206 | Symmetry and model checking - Emerson, Sistla - 1996 |

202 | Compiled-based prefetching for recursive data structures
- Luk, Mowry
- 1996
(Show Context)
Citation Context ...oa75]. Such invariants are useful for sharpening the results obtained from a tool like LClint, which predicts memory-usage bugs [Eva96], and for program optimization (e.g., to improve memory locality =-=[LM96]). In the -=-past two decades, many "shape-analysis" algorithms have been developed that can automatically identify shape invariants in some programs that manipulate heap-allocated storage [JM81, JM82, L... |

192 | Abstract interpretation: A uni lattice model for static analysis of programs by construction or approximation of - Cousot, Cousot - 1977 |

177 | Static Detection of Dynamic Memory Errors
- Evans
- 1996
(Show Context)
Citation Context ...nvariants are reestablished once a sequence of operations is finished [Hoa75]. Such invariants are useful for sharpening the results obtained from a tool like LClint, which predicts memory-usage bugs =-=[Eva96], and for -=-program optimization (e.g., to improve memory locality [LM96]). In the past two decades, many "shape-analysis" algorithms have been developed that can automatically identify shape invariants... |

168 | Parallelizing programs with recursive data structures - Hendren, Nicolau - 1990 |

161 | Detecting conflicts between structure accesses - Larus, Hilfinger - 1988 |

144 | Dependence analysis for pointer variables - Horwitz, Pfeiffer, et al. - 1989 |

142 | Experience with predicate abstraction - Das, Dill, et al. - 1999 |

131 | TVLA: A system for implementing static analyses - Lev-Ami, Sagiv - 2000 |

113 | Pointer-induced aliasing: a problem classification - Landi, Ryder - 1991 |

107 | A flexible approach to interprocedural data flow analysis and programs with recursive data structures - Jones, Muchnick - 1982 |

88 | Putting static analysis to work for verification: A case study - Lev-Ami, Reps, et al. - 2000 |

85 | Abstractions for recursive pointer data structures: Improving the analysis and transformation of imperative programs
- Hendren, Hummel, et al.
- 1992
(Show Context)
Citation Context ...fficient. ffl The special cyclicity predicates c f:b and c b:f are used to capture doubly-linked lists, in which forward and backward field dereferences cancel each other. This idea was introduced in =-=[HHN92]-=- and also used in [PCK93]. In the general case, a program uses a number of different struct types. The core vocabulary is then defined as follows: C def = fsel j sel 2 Selg [ fx j x 2 PVarg [ fsmg; (1... |

82 | Verifying safety properties of concurrent Java programs using 3-valued logic - Yahav - 2001 |

80 | A program verifier - King - 1969 |

79 | Shape types - Fradet, Metayer - 1997 |

78 | A storeless model of aliasing and its abstractions using finite represent at ions of right-regular equivalence relations - Deutsch - 1992 |

76 |
Notes on data structuring
- HOARE
- 1972
(Show Context)
Citation Context ...hese invariants are usually not preserved by the execution of individual program statements, and it is challenging to prove that invariants are reestablished once a sequence of operations is finished =-=[Hoa75]-=-. Such invariants are useful for sharpening the results obtained from a tool like LClint, which predicts memory-usage bugs [Eva96], and for program optimization (e.g., to improve memory locality [LM96... |

66 | Multivalued logics. a uniform approach to inference in artificial intelligence
- Ginsberg
- 1988
(Show Context)
Citation Context ... 2 Kleene's semantics of three-valued logic is monotonic in the information order (see Table 1 and Definition 3.4). The values 0, 1, and 1=2 form a mathematical structure known as a bi-lattice, e.g., =-=[Gin88]-=-, as shown in Figure 4. A bi-lattice has two orderings: the logical order and the information order. The logical order is the one used in Table 1: that is,sandsare meet and join in the logical order (... |

63 | Automatic verification of pointer programs using monadic second-order logic - Jensen, Jorgensen, et al. - 1997 |

60 | A Course - Bell, Machover - 1977 |

53 | Dyn-FO: A parallel dynamic complexity class - Patnaik, Immerman - 1994 |

44 | Shape analysis for mobile ambients - Nielson, Nielson |

40 | TVLA: A framework for Kleene based static analysis - LEV-AMI, SAGIV |

40 | Incremental and decremental evaluation of transitive closure by first-order queries - Dong, Su - 1993 |

38 | A decidable logic for describing linked data structures - Benedikt, Reps, et al. - 1999 |

37 | Analysis of dynamic structures for efficient parallel execution
- Plevyak, Chien, et al.
- 1994
(Show Context)
Citation Context ...e program. To perform a more precise abstract interpretation of programs, we have to be able to materialize new nodes from summary nodes as the program's data structures are traversed. Plevyak et al. =-=[PCK93]-=- introduced a way to do materialization for straight-line code, and Sagiv et al. [SRW98] developed a way to do this in the presence of loops and recursion. However, these analyses are hard to understa... |

28 | Counterexample-guided abstraction re - Clarke, Grumberg, et al. - 2000 |

27 | An Interactive Program Verifier - Deutsch - 1973 |

26 | Compile-time debugging of C programs working on trees - Elgaard, Møller, et al. - 2000 |

18 | A logic-based approach to data flow analysis - Sagiv, Francez, et al. - 1990 |

15 | A Lattice for Abstract Interpretation of Dynamic (LISP-like - Stransky - 1990 |

14 | Arity bounds in first-order incremental evaluation and definition of polynomial time database queries - Dong, Su - 1998 |

13 | Analysis of Recursive Types in an Imperative Language - Wang - 1994 |

13 | Detecting con between structure accesses - Larus, Hil - 1988 |

12 | A approach to interprocedural data analysis and programs with recursive data structures - Jones, Muchnick - 1982 |

10 | Assignment and linked data structures - Morris - 1982 |

9 | Interprocedural heap analysis for parallelizing imperative programs - Assmann, Weinhardt - 1993 |

9 | induced aliasing: A problem classification - Pointer - 1991 |

9 | Recursive data structures, Int - Hoare - 1975 |

9 | A kleene analysis of mobile ambients - Nielson, Nielson, et al. |

8 | M.: LTL model checking for systems with unbounded number of dynamically created threads and objects - Yahav, Reps, et al. - 2001 |

8 | Automatic veri of pointer programs using monadic second-order logic - Jensen, Joergensen, et al. - 1997 |

7 | Introduction to the PL/CV2 Programming Logic - Constable, Johnson, et al. - 1982 |

5 | Analysis of dynamic structures for ecient parallel execution - Plevyak, Chien, et al. - 1993 |

4 | Symmetry and induction in model checking - Clarke, Jha - 1995 |

4 | Interprocedural shape analysis for recursive programs - RINETSKEY, SAGIV - 2001 |

4 | An Interactive Program Veri - Deutsch - 1973 |

4 | A program veri - King - 1969 |

4 | Putting static analysis to work for veri A case study - Lev-Ami, Reps, et al. - 2000 |

2 | Introduction to the PL/CV2 - Constable, Johnson, et al. - 1982 |

1 | Position statement. Prepared for the Programming Languages Working - AIKEN - 1996 |

1 | Parametric Shape Analysis via 3-Valued Logic • 297 - GRIES - 1981 |

1 | Introduction to Metamathematics, Second Ed - KLEENE - 1987 |

1 | Parametric Shape Analysis via 3-Valued Logic - Morris - 1982 |

1 | Parametric Shape Analysis via 3-Valued Logic 67 - Hoare - 1975 |