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.

Denis Gopan

dblp:44/87 · DBLP profile ↗
← Back
8ranked-venue papers
6as first author
0since 2021 · last 2015
0009-0005-2202-4550ORCID · reported

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

Software engineering, systems software and programming languages · 8 · 6 first-authorTheory of computation · 2 · 2 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
4 papers
Program analysis · 97% Runtime systems and virtual machines · 3%
Network and information security
1 paper
Systems and software security · 100%
Theoretical computer science
1 paper
Logic in computer science · 100%

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

TopicWeightPapersLastEvidence papers
Program analysis
static analysis
0.332015
Data-Delineation in Software Binaries and its Application to Buffer-Overrun Discovery · ICSE (1) 2015
A framework for numeric analysis of array operations · POPL 2005
Demand-driven points-to analysis for Java · OOPSLA 2005
Systems and software security › memory safety › memory error detection
buffer overflow detection
0.212015
Data-Delineation in Software Binaries and its Application to Buffer-Overrun Discovery · ICSE (1) 2015
Systems and software security
memory safety
0.212015
Data-Delineation in Software Binaries and its Application to Buffer-Overrun Discovery · ICSE (1) 2015
Logic in computer science › program semantics
abstract interpretation
0.112006
Lookahead Widening · CAV 2006
Program analysis › static analysis
abstract interpretation
0.112005
A framework for numeric analysis of array operations · POPL 2005
Program analysis › static analysis
pointer analysis
0.112005
Demand-driven points-to analysis for Java · OOPSLA 2005
Program analysis
CFL-reachability
0.012005
Demand-driven points-to analysis for Java · OOPSLA 2005
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation
0.012005
Demand-driven points-to analysis for Java · OOPSLA 2005

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

heuristic static analysis · 0.4DWARF debugging information · 0.4summarization · 0.1static analysis · 0.1lookahead widening · 0.1summarizing numeric domains · 0.1regularization · 0.1refinement · 0.1canonical abstraction · 0.1andersen's analysis · 0.1
YearPublicationVenuePosition
2015 Data-Delineation in Software Binaries and its Application to Buffer-Overrun Discovery
abstract
Detecting memory-safety violations in binaries is complicated by the lack of knowledge of the intended data layout, i.e., the locations and sizes of objects. We present lightweight, static, heuristic analyses for recovering the intended layout of data in a stripped binary. Comparison against DWARF debugging information shows high precision and recall rates for inferring source-level object boundaries. On a collection of benchmarks, our analysis eliminates a third to a half of incorrect object boundaries identified by an IDA Pro-inspired heuristic, while retaining nearly all valid object boundaries. In addition to measuring their accuracy directly, we evaluate the effect of using the recovered data for improving the precision of static buffer-overrun detection in the defect-detection tool CodeSonar/x86. We demonstrate that CodeSonar's false-positive rate drops by about 80% across our internal evaluation suite for the tool, while our approximation of CodeSonar's recall only degrades about 25%.
Denis Gopan, Evan Driscoll, Ducson Nguyen, Dimitri Naydich, Alexey Loginov, David Melski
ICSE (1)1
2007 Low-Level Library Analysis and Summarization
Denis Gopan, Thomas W. Reps
CAV1
2007 Guided Static Analysis
Denis Gopan, Thomas W. Reps
SAS1
2006 Lookahead Widening
Denis Gopan, Thomas W. Reps
CAV1
2005 Demand-driven points-to analysis for Java
abstract
We present a points-to analysis technique suitable for environments with small time and memory budgets, such as just-in-time (JIT) compilers and interactive development environments (IDEs). Our technique is demand-driven, performing only the work necessary to answer each query (a request for a variable's points-to information) issued by a client. In cases where even the demand-driven approach exceeds the time budget for a query, we employ early termination, i.e., stopping the analysis prematurely and returning an over-approximated result to the client. Our technique improves on previous demand-driven points-to analysis algorithms [17, 33] by achieving much higher precision under small time budgets and early termination.We formulate Andersen's analysis [5] for Java as a CFL-reachability problem [33]. This formulation shows that Andersen's analysis for Java is a balanced-parentheses problem, an insight that enables our new techniques. We exploit the balanced parentheses structure to approximate Andersen's analysis by regularizing the CFL-reachability problem, yielding an asymptotically cheaper algorithm. We also show how to regain most of the precision lost in the regular approximation as needed through refinement. Our evaluation shows that our regularization and refinement approach achieves nearly the precision of field-sensitive Andersen's analysis in time budgets as small as 2ms per query. Our technique can yield speedups of up to 16x over computing an exhaustive Andersen's analysis for some clients, with little to no precision loss.
Manu Sridharan, Denis Gopan, Lexin Shan, Rastislav Bodík
OOPSLA2
2005 A framework for numeric analysis of array operations
abstract
Automatic discovery of relationships among values of array elements is a challenging problem due to the unbounded nature of arrays. We present a framework for analyzing array operations that is capable of capturing numeric properties of array elements.In particular, the analysis is able to establish that all array elements are initialized by an array-initialization loop, as well as to discover numeric constraints on the values of initialized elements.The analysis is based on the combination of canonical abstraction and summarizing numeric domains. We describe a prototype implementation of the analysis and discuss our experience with applying the prototype to several examples, including the verification of correctness of an insertion-sort procedure.
Denis Gopan, Thomas W. Reps, Shmuel Sagiv
POPL1
2005 A Relational Abstraction for Functions
Bertrand Jeannet, Denis Gopan, Thomas W. Reps
SAS2
2004 Numeric Domains with Summarized Dimensions
Denis Gopan, Frank DiMaio, Nurit Dor, Thomas W. Reps, Shmuel Sagiv
TACAS1