• Documents
  • Authors
  • Tables
  • Other Seers ▼
    RefSeer AckSeer CollabSeer SeerSeer
  • Log in
  • Sign up
  • MetaCart

CiteSeerX logo

Advanced Search Include Citations
Advanced Search Include Citations | Disambiguate

Interprocedural Shape Analysis for Recursive Programs,” CC01 (2001)

by N Rinetzky, M Sagiv
Add To MetaCart

Tools

Sorted by:
Results 11 - 20 of 21
Next 10 →

Efficient context-sensitive shape analysis with graph based heap models

by Mark Marron, Manuel Hermenegildo, Deepak Kapur, Darko Stefanovic - In Compiler Construction (CC , 2008
"... Abstract. The performance of heap analysis techniques has a significant impact on their utility in an optimizing compiler. Most shape analysis techniques perform interprocedural dataflow analysis in a context-sensitive manner, which can result in analyzing each procedure body many times (causing sig ..."
Abstract - Cited by 12 (5 self) - Add to MetaCart
Abstract. The performance of heap analysis techniques has a significant impact on their utility in an optimizing compiler. Most shape analysis techniques perform interprocedural dataflow analysis in a context-sensitive manner, which can result in analyzing each procedure body many times (causing significant increases in runtime even if the analysis results are memoized). To improve the effectiveness of memoization (and thus speed up the analysis) project/extend operations are used to remove portions of the heap model that cannot be affected by the called procedure (effectively reducing the number of different contexts that a procedure needs to be analyzed with). This paper introduces project/extend operations that are capable of accurately modeling properties that are important when analyzing non-trivial programs (sharing, nullity information, destructive recursive functions, and composite data structures). The techniques we introduce are able to handle these features while significantly improving the effectiveness of memoizing analysis results (and thus improving analysis performance). Using a range of well known benchmarks (many of which have not been successfully analyzed using other existing shape analysis methods) we demonstrate that our approach results in significant improvements in both accuracy and efficiency over a baseline analysis. 1

Lattice Automata: A Representation for Languages on Infinite Alphabets, and Some Applications to Verification

by Tristan Le Gall
"... Abstract. This paper proposes a new abstract domain for languages on infinite alphabets, which acts as a functor taking an abstract domain for a concrete alphabet and lift it to an abstract domain for words on this alphabet. The abstract representation is based on lattice automata, which are finite ..."
Abstract - Cited by 7 (0 self) - Add to MetaCart
Abstract. This paper proposes a new abstract domain for languages on infinite alphabets, which acts as a functor taking an abstract domain for a concrete alphabet and lift it to an abstract domain for words on this alphabet. The abstract representation is based on lattice automata, which are finite automata labeled by elements of an atomic lattice. We define a normal form, standard language operations and a widening operator for these automata. We apply this abstract lattice for the verification of symbolic communicating machines, and we discuss its usefulness for interprocedural analysis. 1

Interprocedural functional shape analysis using local heaps

by Noam Rinetzky, Mooly Sagiv, Eran Yahav - Var� S y�=x fv(yσ) VarDecl {P } C {Q} �x ∩ fv(P, Q) = ∅ {P } local �x in C {Q} RecProcDecl Γ , {P } f(�x) {Q} ⊢ {P } C {Q} Γ , {P } f(�x) {Q} ⊢ {R} C ′ {S} Γ ⊢ {R} letrec f(�x) {C} in C ′ {S , 2004
"... We present a framework for interprocedural shape analysis, which is contextand flow-sensitive with the ability to perform destructive pointer updates. Instances of the framework are precise enough to prove the absence of program errors such as null dereferences, memory leaks and verify conformance t ..."
Abstract - Cited by 6 (0 self) - Add to MetaCart
We present a framework for interprocedural shape analysis, which is contextand flow-sensitive with the ability to perform destructive pointer updates. Instances of the framework are precise enough to prove the absence of program errors such as null dereferences, memory leaks and verify conformance to API specifications. Technically, our analysis computes procedure summaries as transformers from inputs to outputs while ignoring parts of the heap not relevant to the procedure. This makes the analysis modular in the heap and thus allows reusing the effect of a procedure at different call-sites and even between different contexts occurring at the same call-site. A prototype of our framework was implemented and used to verify interesting properties of heap manipulating programs. 1

Maintaining doubly-linked list invariants in shape analysis with local reasoning

by Sigmund Cherem, Radu Rugina - In Verification, Model Checking, and Abstract Interpretation (VMCAI , 2007
"... Abstract. This paper presents a novel shape analysis algorithm with local reasoning that is designed to analyze heap structures with structural invariants, such as doubly-linked lists. The algorithm abstracts and analyzes one single heap cell at a time. In order to maintain the structural invariants ..."
Abstract - Cited by 5 (0 self) - Add to MetaCart
Abstract. This paper presents a novel shape analysis algorithm with local reasoning that is designed to analyze heap structures with structural invariants, such as doubly-linked lists. The algorithm abstracts and analyzes one single heap cell at a time. In order to maintain the structural invariants, the analysis uses a local heap abstraction that models the sub-heap consisting of one cell and its immediate neighbors. The proposed algorithm can successfully analyze standard doublylinked list manipulations. 1

TVLA: A system for generating abstract interpreters

by Tal Lev-ami, Roman Manevich, Mooly Sagiv - In 18 th IFIP Congress Topical , 2004
"... Abstract TVLA (Three-Valued-Logic Analyzer) is a “YACC”-like framework for automatically constructing abstract interpreters from an operational semantics. The operational semantics is specified as a generic transition system based on first-order logic. TVLA was implemented in Java and successfully u ..."
Abstract - Cited by 4 (0 self) - Add to MetaCart
Abstract TVLA (Three-Valued-Logic Analyzer) is a “YACC”-like framework for automatically constructing abstract interpreters from an operational semantics. The operational semantics is specified as a generic transition system based on first-order logic. TVLA was implemented in Java and successfully used to prove interesting properties of (concurrent) Java programs manipulating dynamically allocated linked data structures. 1.

Logics and analyses for concurrent heap-manipulating programs

by Alexey Gotsman , 2009
"... ..."
Abstract - Cited by 2 (1 self) - Add to MetaCart
Abstract not found

Establishing Local Temporal Heap Safety Properties

by With Applications To, Ran Shaham, Eran Yahav, Elliot K. Kolodner, Mooly Sagiv - In Static Analysis Symposium , 2003
"... We present a framework for statically reasoning about temporal heap safety properties. We focus on local temporal heap safety properties, in which the verification process may be performed for a program object independently of other program objects. ..."
Abstract - Add to MetaCart
We present a framework for statically reasoning about temporal heap safety properties. We focus on local temporal heap safety properties, in which the verification process may be performed for a program object independently of other program objects.

Automatic Assume/Guarantee Reasoning for

by Heap-Manipulating Programs Ongoing, Greta Yorsh, Alexey Skidanov, Thomas Reps, Mooly Sagiv - In 1st AIOOL Workshop , 2005
"... Assume/Guarantee (A/G) reasoning for heap-manipulating programs is challenging because the heap can be mutated in an arbitrary way by procedure calls. Moreover, specifying the potential side-effects of a procedure is non-trivial. We report on an on-going effort to reduce the burden of A/G reasoning ..."
Abstract - Add to MetaCart
Assume/Guarantee (A/G) reasoning for heap-manipulating programs is challenging because the heap can be mutated in an arbitrary way by procedure calls. Moreover, specifying the potential side-effects of a procedure is non-trivial. We report on an on-going effort to reduce the burden of A/G reasoning for heap-manipulating programs by automatically generating post-conditions and estimating side-effects of non-recursive procedures. Our method is sound. It combines the use of theorem provers and abstract-interpretation algorithms.

A Relational Approach to Intraprocedural Shape Analysis

by Bertrand Jeannet, ALEXEY LOGINOV, Thomas Reps, MOOLY SAGIV , 2008
"... This paper addresses the verification of properties of imperative programs with recursive procedure calls, heap-allocated storage, and destructive updating of pointer-valued fields—i.e.,interprocedural shape analysis. The paper makes three contributions: — It introduces a new method for abstracting ..."
Abstract - Add to MetaCart
This paper addresses the verification of properties of imperative programs with recursive procedure calls, heap-allocated storage, and destructive updating of pointer-valued fields—i.e.,interprocedural shape analysis. The paper makes three contributions: — It introduces a new method for abstracting relations over memory configurations for use in abstract interpretation. — It shows how this method furnishes the elements needed for a compositional approach to shape analysis. In particular, abstracted relations are used to represent the shape transformation performed by a sequence of operations, and an over-approximation to relational composition can be performed using the meet operation of the domain of abstracted relations. — It applies these ideas in a new algorithm for context-sensitive interprocedural shape analysis. The algorithm creates procedure summaries using abstracted relations over memory configurations, and the meet-based composition operation provides a way to apply the summary transformer for a procedure P at each call site from which P is called. The algorithm has been applied successfully to establish properties of both (i) recursive programs that manipulate lists, and (ii) recursive programs that manipulate binary trees.

Refinement-Based Program Verification via . . .

by Alexey A. Loginov , 2006
"... ..."
Abstract - Add to MetaCart
Abstract not found
The National Science Foundation
  • About CiteSeerX
  • Submit Documents
  • Privacy Policy
  • Help
  • Data
  • Source
  • Contact Us

Developed at and hosted by The College of Information Sciences and Technology

© 2007-2010 The Pennsylvania State University