Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

David L. Heine

dblp:57/2646 · DBLP profile ↗
← Back
3ranked-venue papers
2as first author
0since 2021 · last 2006
—ORCID · none

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

Software engineering, systems software and programming languages · 2 · 2 first-authorSystems, architecture and hardware · 1

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% Programming languages and type systems · 30%

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

TopicWeightPapersLastEvidence papers
Program analysis › error detection
memory leak detection
0.122006
Static detection of leaks in polymorphic containers · ICSE 2006
A practical flow-sensitive and context-sensitive C and C++ memory leak detector · PLDI 2003
Program analysis
static analysis
0.112006
Static detection of leaks in polymorphic containers · ICSE 2006
Programming languages and type systems › type systems
ownership types
0.122006
A practical flow-sensitive and context-sensitive C and C++ memory leak detector · PLDI 2003
Static detection of leaks in polymorphic containers · ICSE 2006
Program analysis › static analysis
pointer analysis
0.012003
A practical flow-sensitive and context-sensitive C and C++ memory leak detector · PLDI 2003
Programming languages and type systems
type systems
0.022006
Static detection of leaks in polymorphic containers · ICSE 2006
A practical flow-sensitive and context-sensitive C and C++ memory leak detector · PLDI 2003

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

flow-sensitive analysis · 0.1context-sensitive analysis · 0.1ownership type system · 0.1type system · 0.0
YearPublicationVenuePosition
2006 Static detection of leaks in polymorphic containers
abstract
This paper presents the first practical static analysis tool that can find memory leaks and double deletions of objects held in polymorphic containers. This is especially important since most dynamically allocated objects are stored in containers.The tool is based on the concept of object ownership: every object has one and only one owning pointer. The owning pointer holds the exclusive right and obligation to either delete the object or to transfer the obligation. This paper presents a new type system that allows different instances of a polymorphic container to hold different types of elements, and to independently own or not own their elements.Our tool is sound: it will report all potential memory leaks and multiple deletions of pointers in a program. Our system automatically identifies the container implementation routines in an application. The user provides a short specification on the container structure and ownership constraints for these routines. The system then solves for the ownership constraints flow- and context-sensitively, and reports inconsistencies in ownership constraints as potential memory leaks and double deletions.We applied our tool to a suite of five large open-source and commercial C and C++ applications totaling one million lines of code. The tool successfully identified memory leaks in these programs and found double deletions of objects that could lead to program failures or security vulnerabilities.
David L. Heine, Monica S. Lam
ICSE1
2003 A practical flow-sensitive and context-sensitive C and C++ memory leak detector
abstract
This paper presents a static analysis tool that can automatically find memory leaks and deletions of dangling pointers in large C and C++ applications.We have developed a type system to formalize a practical ownership model of memory management. In this model, every object is pointed to by one and only one owning pointer, which holds the exclusive right and obligation to either delete the object or to transfer the right to another owning pointer. In addition, a pointer-typed class member field is required to either always or never own its pointee at public method boundaries. Programs satisfying this model do not leak memory or delete the same object more than once.We have also developed a flow-sensitive and context-sensitive algorithm to automatically infer the likely ownership interfaces of methods in a program. It identifies statements inconsistent with the model as sources of potential leaks or double deletes. The algorithm is sound with respect to a large subset of the C and C++ language in that it will report all possible errors. It is also practical and useful as it identifies those warnings likely to correspond to errors and helps the user understand the reported errors by showing them the assumed method interfaces.Our techniques are validated with an implementation of a tool we call Clouseau. We applied Clouseau to a suite of applications: two web servers, a chat client, secure shell tools, executable object manipulation tools, and a compiler. The tool found a total of 134 serious memory errors in these applications. The tool analyzes over 50K lines of C++ code in about 9 minutes on a 2 GHz Pentium 4 machine and over 70K lines of C code in just over a minute.
David L. Heine, Monica S. Lam
PLDI1
1990 Implementation of Neural Network Algorithms on the P3 Parallel Associative Processor
Konstantinos I. Diamantaras, David L. Heine, Isaac D. Scherson
ICPP (1)2