Demo Data from SIGIR 2026 / reviewers in the wild / expert
Jacob Evans
dblp:22/7750
· DBLP profile ↗
3ranked-venue papers
0as first author
0since 2021 · last 2012
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Systems, architecture and hardware · 2Software engineering, systems software and programming languages · 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
1 paper |
Concurrent programming · 75% Program analysis · 25% |
Topics — the 4 heaviest of 4, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Concurrent programming
concurrency bugs |
0.1 | 1 | 2012 | Sound predictive race detection in polynomial time · POPL 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 |
| Year | Publication | Venue | Position |
|---|---|---|---|
| 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 | 2 |
| 2010 | Adaptive locks: Combining transactions and locks for efficient concurrency
Takayuki Usui, Reimer Behrends, Jacob Evans, Yannis Smaragdakis |
J. Parallel Distributed Comput. | 3 |
| 2009 | Adaptive Locks: Combining Transactions and Locks for Efficient ConcurrencyabstractTransactional memory is being advanced as an alternative to traditional lock-based synchronization for concurrent programming. Transactional memory simplifies the programming model and maximizes concurrency. At the same time, transactions can suffer from interference that causes them to often abort, from heavy overheads for memory accesses, and from expressiveness limitations (e.g., for I/O operations). In this paper we propose an adaptive locking technique that dynamically observes whether a critical section would be best executed transactionally or while holding a mutex lock. The critical new elements of our approach include the adaptivity logic and cost-benefit analysis, a low overhead implementation of statistics collection and adaptive locking in a full C compiler, and an exposition of the effects on the programming model. In experiments with both micro and macro-benchmarks we found adaptive locks to consistently match or out perform the better of the two component mechanisms (mutexes or transactions). Compared to either mechanism alone, adaptive locks often provide 3-to-10x speedups. Additionally, adaptive locks simplify the programming model by reducing the need for fine-grained locking: with adaptive locks, the programmer can specify coarse-grained locking annotations and often achieve fine-grained locking performance due to the transactional memory mechanisms. Takayuki Usui, Reimer Behrends, Jacob Evans, Yannis Smaragdakis |
PACT | 3 |