Sigmund Cherem

dblp:05/1292 · DBLP profile ↗
← Back
7ranked-venue papers
7as first author
0since 2021 · last 2008
—ORCID · none

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 7 · 7 first-author

Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.

Software engineering, system software, and programming languages
2 papers
Program analysis · 70% Concurrent programming · 30%

Topics — the 6 heaviest of 6, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Concurrent programming › atomicity
atomic sections
0.112008
Inferring locks for atomic sections · PLDI 2008
Program analysis › concurrent program analysis
lock inference
0.112008
Inferring locks for atomic sections · PLDI 2008
Program analysis › error detection
memory leak detection
0.112007
Practical memory leak detection using guarded value-flow analysis · PLDI 2007
Program analysis
static analysis
0.112007
Practical memory leak detection using guarded value-flow analysis · PLDI 2007
Concurrent programming
transactional memory
0.012008
Inferring locks for atomic sections · PLDI 2008
Program analysis › static analysis
interprocedural analysis
0.012007
Practical memory leak detection using guarded value-flow analysis · PLDI 2007

Methods — techniques the papers use, named apart from their topics

software transactional memory · 0.1optimistic concurrency · 0.1value-flow graph · 0.1reachability analysis · 0.1
YearPublicationVenuePosition
2008 Inferring locks for atomic sections
abstract
Atomic sections are a recent and popular idiom to support the development of concurrent programs. Updates performed within an atomic section should not be visible to other threads until the atomic section has been executed entirely. Traditionally, atomic sections are supported through the use of optimistic concurrency, either using a transactional memory hardware, or an equivalent software emulation (STM).
Sigmund Cherem, Trishul M. Chilimbi, Sumit Gulwani
PLDI1
2007 A Practical Escape and Effect Analysis for Building Lightweight Method Summaries
Sigmund Cherem, Radu Rugina
CC1
2007 Uniqueness inference for compile-time object deallocation
abstract
This paper presents an analysis and transformation for individual object reclamation in Java programs. First, we propose a uniqueness inference algorithm that identifies variables and object fields that hold unique references. The algorithm performs an intra-procedural analysis of each method, and then builds and solves a set of inter-procedural uniqueness dependencies to find the global solution. Second, our system uses the uniqueness information to automatically instrument programs with explicit deallocation of individual objects. A key feature of the transformation is its ability to deallocate entire heap structures, including recursive structures, when their root objects are freed. This is achieved by generating object destructors that recursively free all of the unique object fields. Our experiments show that the analysis is effective at reclaiming a large fraction of the objects at a low analysis cost.
Sigmund Cherem, Radu Rugina
ISMM1
2007 Practical memory leak detection using guarded value-flow analysis
abstract
This paper presents a practical inter-procedural analysis algorithm for detecting memory leaks in C programs. Our algorithm tracks the flow of values from allocation points to deallocation points using a sparse representation of the program consisting of a value flow graph that captures def-use relations and value flows via program assignments. Edges in the graph are annotated with guards that describe branch conditions in the program. The memory leak analysis is reduced to a reachability problem over the guarded value flowgraph. Our implemented tool has been effective at detecting more than 60 memory leaks in the SPEC2000 benchmarks and in two open-source applications, bash and sshd, while keeping the false positive rate below 20%. The sparse program representation makes the tool efficient in practice, and allows it to report concise error messages.
Sigmund Cherem, Lonnie Princehouse, Radu Rugina
PLDI1
2007 Maintaining Doubly-Linked List Invariants in Shape Analysis with Local Reasoning
Sigmund Cherem, Radu Rugina
VMCAI1
2006 Compile-time deallocation of individual objects
abstract
This paper presents a static analysis and transformation system that enables the deallocation of individual objects in Java programs. Given an input program, the compiler automatically inserts free statements to deallocate individual objects. This transformation is enabled by an inter-procedural, context-sensitive dataflow analysis that tracks the state of one object instance at a time, from the point where it is allocated, and up to the point where the object instance becomes unreachable and can be freed.For the SPECjvm98 benchmarks, free-instrumented programs generated by our compiler and executed in a virtual machine with explicit memory deallocation reclaim, on average, more than 50%of the total memory allocated by the program, and have a low run-time overhead of 1%. For several benchmarks, the analysis can free more than 85% of the total memory.
Sigmund Cherem, Radu Rugina
ISMM1
2004 Region analysis and transformation for Java programs
abstract
This paper presents a region analysis and transformation framework for Java programs. Given an input Java program, the compiler automatically translates it into an equivalent output program with region-based memory management. The generated program contains statements for creating regions, allocating objects in regions, removing regions, and passing regions as parameters. As a particular case, the analysis can enable the allocation of objects on the stack.
Sigmund Cherem, Radu Rugina
ISMM1