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

Deokhwan Kim

dblp:35/9698 · DBLP profile ↗
← Back
8ranked-venue papers
1as first author
0since 2021 · last 2020
0000-0002-0968-3827ORCID · corroborated

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

Software engineering, systems software and programming languages · 6 · 1 first-authorSystems, architecture and hardware · 2Security and privacy · 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.

Network and information security
3 papers
Systems and software security · 83% Web and mobile security · 17%
Software engineering, system software, and programming languages
5 papers
Program verification · 86% Program analysis · 14%

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

TopicWeightPapersLastEvidence papers
Program verification
equivalence checking
0.412020
Synthesizing replacement classes · Proc. ACM Program. Lang. 2020
Web and mobile security › mobile security
android application analysis
0.212015
Information Flow Analysis of Android Applications in DroidSafe · NDSS 2015
Systems and software security
exploitation
0.212015
Targeted Automatic Integer Overflow Discovery Using Goal-Directed Conditional Branch Enforcement · ASPLOS 2015
Systems and software security › information flow control
information flow analysis
0.212015
Information Flow Analysis of Android Applications in DroidSafe · NDSS 2015
Systems and software security
vulnerability discovery
0.212015
Targeted Automatic Integer Overflow Discovery Using Goal-Directed Conditional Branch Enforcement · ASPLOS 2015
Systems and software security › vulnerability discovery
integer overflow vulnerabilities
0.212014
Sound input filter generation for integer overflow errors · POPL 2014
Program verification › data structure verification
linked data structure verification
0.112011
Verification of semantic commutativity conditions and inverse operations on linked data structures · PLDI 2011
Program analysis
dynamic analysis
0.112015
Targeted Automatic Integer Overflow Discovery Using Goal-Directed Conditional Branch Enforcement · ASPLOS 2015
Program analysis
static analysis
0.112015
Information Flow Analysis of Android Applications in DroidSafe · NDSS 2015
Emerging computing paradigms
approximate computing
0.012012
Proving acceptability properties of relaxed nondeterministic approximate programs · PLDI 2012

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

static information flow analysis · 0.4fuzzing · 0.4binary instrumentation · 0.4synthesis · 0.4equivalence predicate · 0.4nondeterministic program transformation · 0.3static program analysis · 0.2abstract state reasoning · 0.1
YearPublicationVenuePosition
2020 Synthesizing replacement classes
abstract
We present a new technique for automatically synthesizing replacement classes. The technique starts with an original class O and a potential replacement class R, then uses R to synthesize a new class that implements the same interface and provides the same functionality as O. Critically, our technique works with a synthe- sized inter-class equivalence predicate between the states of O and R. It uses this predicate to ensure that original and synthesized methods leave corresponding O and R objects in equivalent states. The predicate therefore enables the technique to synthesize individual replacement methods in isolation while still obtain- ing a replacement class that leaves the original and replacement objects in equivalent states after arbitrarily long method invocation sequences. We have implemented the technique as part of a tool, named Mask, and evaluated it using open-source Java classes. The results highlight the effectiveness of Mask in synthesizing replacement classes.
Malavika Samak, Deokhwan Kim, Martin C. Rinard
Proc. ACM Program. Lang.2
2015 Targeted Automatic Integer Overflow Discovery Using Goal-Directed Conditional Branch Enforcement
abstract
We present a new technique and system, DIODE, for auto- matically generating inputs that trigger overflows at memory allocation sites. DIODE is designed to identify relevant sanity checks that inputs must satisfy to trigger overflows at target memory allocation sites, then generate inputs that satisfy these sanity checks to successfully trigger the overflow. DIODE works with off-the-shelf, production x86 binaries. Our results show that, for our benchmark set of applications, and for every target memory allocation site exercised by our seed inputs (which the applications process correctly with no overflows), either 1) DIODE is able to generate an input that triggers an overflow at that site or 2) there is no input that would trigger an overflow for the observed target expression at that site.
Stelios Sidiroglou-Douskos, Eric Lahtinen, Nathan Rittenhouse, Paolo Piselli, Fan Long, Deokhwan Kim, Martin C. Rinard
ASPLOS6
2015 Information Flow Analysis of Android Applications in DroidSafe
Michael I. Gordon, Deokhwan Kim, Jeff H. Perkins, Limei Gilham, Nguyen Nguyen 0002, Martin C. Rinard
NDSS2
2014 Sound input filter generation for integer overflow errors
abstract
We present a system, SIFT, for generating input filters that nullify integer overflow errors associated with critical program sites such as memory allocation or block copy sites. SIFT uses a static pro- gram analysis to generate filters that discard inputs that may trigger integer overflow errors in the computations of the sizes of allocated memory blocks or the number of copied bytes in block copy operations. Unlike all previous techniques of which we are aware, SIFT is sound -- if an input passes the filter, it will not trigger an integer overflow error at any analyzed site. Our results show that SIFT successfully analyzes (and therefore generates sound input filters for) 56 out of 58 memory allocation and block memory copy sites in analyzed input processing modules from five applications (VLC, Dillo, Swfdec, Swftools, and GIMP). These nullified errors include six known integer overflow vulnerabilities. Our results also show that applying these filters to 62895 real-world inputs produces no false positives. The analysis and filter generation times are all less than a second.
Fan Long, Stelios Sidiroglou-Douskos, Deokhwan Kim, Martin C. Rinard
POPL3
2013 Verified integrity properties for safe approximate program transformations
abstract
Approximate computations (for example, video, audio, and image processing, machine learning, and many scientific computations) have the freedom to generate a range of acceptable results. Approximate program transformations (for example, task skipping and loop perforation) exploit this freedom to produce computations that can execute at a variety of points in an underlying accuracy versus performance trade-off space. One potential concern is that these transformations may change the semantics of the program and therefore cause the program to crash, perform an illegal operation, or otherwise violate its integrity.
Michael Carbin, Deokhwan Kim, Sasa Misailovic, Martin C. Rinard
PEPM2
2013 Parallelizing Sequential Programs with Statistical Accuracy Tests
abstract
We present QuickStep, a novel system for parallelizing sequential programs. Unlike standard parallelizing compilers (which are designed to preserve the semantics of the original sequential computation), QuickStep is instead designed to generate (potentially nondeterministic) parallel programs that produce acceptably accurate results acceptably often. The freedom to generate parallel programs whose output may differ (within statistical accuracy bounds) from the output of the sequential program enables a dramatic simplification of the compiler, a dramatic increase in the range of applications that it can parallelize, and a significant expansion in the range of parallel programs that it can legally generate. Results from our benchmark set of applications show that QuickStep can automatically generate acceptably accurate and efficient parallel programs---the automatically generated parallel versions of five of our six benchmark applications run between 5.0 and 7.8 times faster on eight cores than the original sequential versions. These applications and parallelizations contain features (such as the use of modern object-oriented programming constructs or desirable parallelizations with infrequent but acceptable data races) that place them inherently beyond the reach of standard approaches.
Sasa Misailovic, Deokhwan Kim, Martin C. Rinard
ACM Trans. Embed. Comput. Syst.2
2012 Proving acceptability properties of relaxed nondeterministic approximate programs
abstract
Approximate program transformations such as skipping tasks [29, 30], loop perforation [21, 22, 35], reduction sampling [38], multiple selectable implementations [3, 4, 16, 38], dynamic knobs [16], synchronization elimination [20, 32], approximate function memoization [11],and approximate data types [34] produce programs that can execute at a variety of points in an underlying performance versus accuracy tradeoff space. These transformed programs have the ability to trade accuracy of their results for increased performance by dynamically and nondeterministically modifying variables that control their execution.
Michael Carbin, Deokhwan Kim, Sasa Misailovic, Martin C. Rinard
PLDI2
2011 Verification of semantic commutativity conditions and inverse operations on linked data structures
abstract
We present a new technique for verifying commutativity conditions, which are logical formulas that characterize when operations commute. Because our technique reasons with the abstract state of verified linked data structure implementations, it can verify commuting operations that produce semantically equivalent (but not necessarily identical) data structure states in different execution orders. We have used this technique to verify sound and complete commutativity conditions for all pairs of operations on a collection of linked data structure implementations, including data structures that export a set interface (ListSet and HashSet) as well as data structures that export a map interface (AssociationList, HashTable, and ArrayList). This effort involved the specification and verification of 765 commutativity conditions.
Deokhwan Kim, Martin C. Rinard
PLDI1