The program heap is fundamentally a simple mathematical concept --- a set of objects and a connectivity relation on them. However, a large gap exists between the set of heap structures that could be constructed and those that programmers actually build. To understand this gap, we empirically study heap structures and sharing relations in large object-oriented programs. To scale and make sense of real world heaps, any analysis must employ abstraction; our abstraction groups sets of objects by role and the aliasing present in pointer sets. We find that the heaps of real-world programs are, in practice, fundamentally simple structures that are largely constructed from a small number of simple structures and sharing idioms, such as the sharing ...
With the proliferation of online source code repositories such as GitHub and BitBucket, pro-grammers...
Pointers are variables that store addresses of other variables. Pointer analysis determines what add...
Abstract. Modeling the evolution of the state of program memory during program execution is critical...
Precise modeling of the program heap is fundamental for under-standing the behavior of a program, an...
We present a new technique for helping developers understand heap referencing properties of object-o...
Modeling the evolution of the state of program memory during program execution is critical to many p...
Abstract. Previous shape analysis algorithms use a memory model where the heap is composed of discre...
Accurate alias analysis is critical for optimizing/parallelizing compilers that support languages wi...
Abstract. Heap entities tend to contain complex references to each other. To manage this complexity,...
Modeling the evolution of the state of program memory during program execution is critical to many p...
Providing high performance for pointer-intensive programs on modern architectures is an increasingly...
Memory analysis techniques have become sophisticated enough to model, with a high degree of accuracy...
Abstract: Object-oriented programs [Dahl, Goldberg, Meyer] are notoriously prone to the following ki...
This paper presents a novel set of algorithms for heap abstraction, identifying logically related re...
AbstractThis paper presents a novel set of algorithms for heap abstraction, identifying logically re...
With the proliferation of online source code repositories such as GitHub and BitBucket, pro-grammers...
Pointers are variables that store addresses of other variables. Pointer analysis determines what add...
Abstract. Modeling the evolution of the state of program memory during program execution is critical...
Precise modeling of the program heap is fundamental for under-standing the behavior of a program, an...
We present a new technique for helping developers understand heap referencing properties of object-o...
Modeling the evolution of the state of program memory during program execution is critical to many p...
Abstract. Previous shape analysis algorithms use a memory model where the heap is composed of discre...
Accurate alias analysis is critical for optimizing/parallelizing compilers that support languages wi...
Abstract. Heap entities tend to contain complex references to each other. To manage this complexity,...
Modeling the evolution of the state of program memory during program execution is critical to many p...
Providing high performance for pointer-intensive programs on modern architectures is an increasingly...
Memory analysis techniques have become sophisticated enough to model, with a high degree of accuracy...
Abstract: Object-oriented programs [Dahl, Goldberg, Meyer] are notoriously prone to the following ki...
This paper presents a novel set of algorithms for heap abstraction, identifying logically related re...
AbstractThis paper presents a novel set of algorithms for heap abstraction, identifying logically re...
With the proliferation of online source code repositories such as GitHub and BitBucket, pro-grammers...
Pointers are variables that store addresses of other variables. Pointer analysis determines what add...
Abstract. Modeling the evolution of the state of program memory during program execution is critical...