Demo Data from SIGIR 2026 / reviewers in the wild / expert
Jaeheon Yi
dblp:41/6405
· DBLP profile ↗
8ranked-venue papers
4as first author
0since 2021 · last 2015
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 7 · 3 first-authorSystems, architecture and hardware · 1 · 1 first-authorDatabases, data management, data science and information retrieval · 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
5 papers |
Concurrent programming · 66% Program analysis · 17% Programming languages and type systems · 15% |
Topics — the 16 heaviest of 16, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming
concurrency bugs |
0.3 | 3 | 2012 | Sound predictive race detection in polynomial time · POPL 2012 Velodrome: a sound and complete dynamic atomicity checker for multithreaded programs · PLDI 2008 Cooperative types for controlling thread interference in Java · ISSTA 2012 |
Concurrent programming › concurrency bug detection
data race detection |
0.1 | 1 | 2012 | Sound predictive race detection in polynomial time · POPL 2012 |
Program analysis › dynamic analysis
happens-before analysis |
0.1 | 1 | 2012 | Sound predictive race detection in polynomial time · POPL 2012 |
Concurrent programming › concurrency bug detection › data race detection
predictive race detection |
0.1 | 1 | 2012 | Sound predictive race detection in polynomial time · POPL 2012 |
Programming languages and type systems
type systems |
0.1 | 1 | 2012 | Cooperative types for controlling thread interference in Java · ISSTA 2012 |
Concurrent programming
parallel programming models |
0.1 | 1 | 2011 | Two for the price of one: a model for parallel and incremental computation · OOPSLA 2011 |
Programming languages and type systems › programming paradigms
self-adjusting computation |
0.1 | 1 | 2011 | Two for the price of one: a model for parallel and incremental computation · OOPSLA 2011 |
Concurrent programming
synchronization |
0.1 | 1 | 2011 | Cooperative reasoning for preemptive execution · PPoPP 2011 |
Concurrent programming
transactional memory |
0.1 | 1 | 2011 | Cooperative reasoning for preemptive execution · PPoPP 2011 |
Program analysis
dynamic analysis |
0.1 | 2 | 2011 | Velodrome: a sound and complete dynamic atomicity checker for multithreaded programs · PLDI 2008 Cooperative reasoning for preemptive execution · PPoPP 2011 |
Concurrent programming › concurrency verification
atomicity verification |
0.1 | 1 | 2008 | Velodrome: a sound and complete dynamic atomicity checker for multithreaded programs · PLDI 2008 |
Concurrent programming › concurrency bug detection
atomicity violation detection |
0.1 | 1 | 2008 | Velodrome: a sound and complete dynamic atomicity checker for multithreaded programs · PLDI 2008 |
Concurrent programming › concurrency bugs
thread interference |
0.0 | 1 | 2012 | Cooperative types for controlling thread interference in Java · ISSTA 2012 |
Program analysis › static analysis
incremental analysis |
0.0 | 1 | 2011 | Two for the price of one: a model for parallel and incremental computation · OOPSLA 2011 |
Concurrent programming
atomicity |
0.0 | 1 | 2008 | Velodrome: a sound and complete dynamic atomicity checker for multithreaded programs · PLDI 2008 |
Program verification
correctness conditions |
0.0 | 1 | 2008 | Velodrome: a sound and complete dynamic atomicity checker for multithreaded programs · PLDI 2008 |
Methods — techniques the papers use, named apart from their topics
dynamic analysis · 0.2yield annotations · 0.1type system · 0.1annotation inference · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2015 | Cooperative types for controlling thread interference in Java
Jaeheon Yi, Tim Disney, Stephen N. Freund, Cormac Flanagan |
Sci. Comput. Program. | 1 |
| 2012 | Cooperative types for controlling thread interference in JavaabstractMultithreaded programs are notoriously prone to unintended interference between concurrent threads. To address this problem, we argue that yield annotations in the source code should document all thread interference, and we present a type system for verifying the absence of undocumented interference in Java programs. Under this type system, well-typed programs behave as if context switches occur only at yield annotations. Thus, well-typed programs can be understood using intuitive sequential reasoning, except where yield annotations remind the programmer to account for thread interference. Jaeheon Yi, Tim Disney, Stephen N. Freund, Cormac Flanagan |
ISSTA | 1 |
| 2012 | The evolution of data racesabstractConcurrency bugs are notoriously difficult to find and fix. Several prior empirical studies have identified the prevalence and challenges of concurrency bugs in open source projects, and several existing tools can be used to identify concurrency errors such as data races. However, little is known about how concurrency bugs evolve over time. In this paper, we examine the evolution of data races by analyzing samples of the committed code in two open source projects over a multi-year period. Specifically, we identify how the data races in these programs change over time. Caitlin Sadowski, Jaeheon Yi, Sunghun Kim 0001 |
MSR | 2 |
| 2012 | Sound predictive race detection in polynomial timeabstractData races are among the most reliable indicators of programming errors in concurrent software. For at least two decades, Lamport's happens-before (HB) relation has served as the standard test for detecting races--other techniques, such as lockset-based approaches, fail to be sound, as they may falsely warn of races. This work introduces a new relation, causally-precedes (CP), which generalizes happens-before to observe more races without sacrificing soundness. Intuitively, CP tries to capture the concept of happens-before ordered events that must occur in the observed order for the program to observe the same values. What distinguishes CP from past predictive race detection approaches (which also generalize an observed execution to detect races in other plausible executions) is that CP-based race detection is both sound and of polynomial complexity. We demonstrate that the unique aspects of CP result in practical benefit. Applying CP to real-world programs, we successfully analyze server-level applications (e.g., Apache FtpServer) and show that traces longer than in past predictive race analyses can be analyzed in mere seconds to a few minutes. For these programs, CP race detection uncovers races that are hard to detect by repeated execution and HB race detection: a single run of CP race detection produces several races not discovered by 10 separate rounds of happens-before race detection. Yannis Smaragdakis, Jacob Evans, Caitlin Sadowski, Jaeheon Yi, Cormac Flanagan |
POPL | 4 |
| 2011 | Two for the price of one: a model for parallel and incremental computationabstractParallel or incremental versions of an algorithm can significantly outperform their counterparts, but are often difficult to develop. Programming models that provide appropriate abstractions to decompose data and tasks can simplify parallelization. We show in this work that the same abstractions can enable both parallel and incremental execution. We present a novel algorithm for parallel self-adjusting computation. This algorithm extends a deterministic parallel programming model (concurrent revisions) with support for recording and repeating computations. On record, we construct a dynamic dependence graph of the parallel computation. On repeat, we reexecute only parts whose dependencies have changed. Sebastian Burckhardt, Daan Leijen, Caitlin Sadowski, Jaeheon Yi, Thomas Ball 0001 |
OOPSLA | 4 |
| 2011 | Cooperative reasoning for preemptive executionabstractWe propose a cooperative methodology for multithreaded software, where threads use traditional synchronization idioms such as locks, but additionally document each point of potential thread interference with a "yield" annotation. Under this methodology, code between two successive yield annotations forms a serializable transaction that is amenable to sequential reasoning. This methodology reduces the burden of reasoning about thread interleavings by indicating only those interference points that matter. We present experimental results showing that very few yield annotations are required, typically one or two per thousand lines of code. We also present dynamic analysis algorithms for detecting cooperability violations, where thread interference is not documented by a yield, and for yield annotation inference for legacy software. Jaeheon Yi, Caitlin Sadowski, Cormac Flanagan |
PPoPP | 1 |
| 2011 | Cooperative Concurrency for a Multicore World - (Extended Abstract)
Jaeheon Yi, Caitlin Sadowski, Stephen N. Freund, Cormac Flanagan |
RV | 1 |
| 2008 | Velodrome: a sound and complete dynamic atomicity checker for multithreaded programsabstractAtomicity is a fundamental correctness property in multithreaded programs, both because atomic code blocks are amenable to sequential reasoning (which significantly simplifies correctness arguments), and because atomicity violations often reveal defects in a program's synchronization structure. Unfortunately, all atomicity analyses developed to date are incomplete in that they may yield false alarms on correctly synchronized programs, which limits their usefulness. Cormac Flanagan, Stephen N. Freund, Jaeheon Yi |
PLDI | 3 |