EDBT 2026 Demo / reviewers in the wild / expert
John Whaley
dblp:29/3598
· DBLP profile ↗
14ranked-venue papers
8as first author
2since 2021 · last 2022
0000-0003-1441-6982ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 10 · 7 first-authorGraphics, computer vision, multimedia, augmented reality and games · 2 · 2 since 2021Artificial intelligence and machine learning · 1 · 1 since 2021Systems, 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
6 papers |
Program analysis · 61% Concurrent programming · 20% Compilers and program optimization · 10% | |
| Network and information security
1 paper |
Biometric security · 100% | |
| Artificial intelligence
1 paper |
Deep learning architectures and training · 100% | |
| Databases, data mining, and information retrieval
1 paper |
Query processing and optimization · 100% |
Topics — the 15 heaviest of 17, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Biometric security
gait recognition |
0.5 | 1 | 2021 | Rotation-Invariant Gait Identification with Quaternion Convolutional Neural Networks (Student Abstract) · AAAI 2021 |
Machine learning › Deep learning architectures and training
equivariant neural network |
0.1 | 1 | 2021 | Rotation-Invariant Gait Identification with Quaternion Convolutional Neural Networks (Student Abstract) · AAAI 2021 |
Program analysis › static analysis
pointer analysis |
0.1 | 3 | 2005 | Context-sensitive program analysis as database queries · PODS 2005 Cloning-based context-sensitive pointer alias analysis using binary decision diagrams · PLDI 2004 Compositional Pointer and Escape Analysis for Java Programs · OOPSLA 1999 |
Program analysis
static analysis |
0.1 | 2 | 2006 | Effective static race detection for Java · PLDI 2006 Automatic extraction of object-oriented component interfaces · ISSTA 2002 |
Concurrent programming
concurrency bugs |
0.1 | 1 | 2006 | Effective static race detection for Java · PLDI 2006 |
Concurrent programming › concurrency bug detection
data race detection |
0.1 | 1 | 2006 | Effective static race detection for Java · PLDI 2006 |
Program analysis › static analysis › interprocedural analysis
context-sensitive analysis |
0.1 | 1 | 2005 | Context-sensitive program analysis as database queries · PODS 2005 |
Program analysis › static analysis › pointer analysis
context-sensitive pointer analysis |
0.0 | 1 | 2004 | Cloning-based context-sensitive pointer alias analysis using binary decision diagrams · PLDI 2004 |
Runtime systems and virtual machines
dynamic compilation |
0.0 | 1 | 2001 | Partial Method Compilation using Dynamic Profile Information · OOPSLA 2001 |
Compilers and program optimization › dead code elimination
partial dead code elimination |
0.0 | 1 | 2001 | Partial Method Compilation using Dynamic Profile Information · OOPSLA 2001 |
Compilers and program optimization › dynamic optimization
profile-guided optimization |
0.0 | 1 | 2001 | Partial Method Compilation using Dynamic Profile Information · OOPSLA 2001 |
Program analysis › static analysis › interprocedural analysis
compositional analysis |
0.0 | 1 | 1999 | Compositional Pointer and Escape Analysis for Java Programs · OOPSLA 1999 |
Program analysis › static analysis › pointer analysis
escape analysis |
0.0 | 1 | 1999 | Compositional Pointer and Escape Analysis for Java Programs · OOPSLA 1999 |
Requirements engineering and software design
software architecture |
0.0 | 1 | 2002 | Automatic extraction of object-oriented component interfaces · ISSTA 2002 |
Runtime systems and virtual machines › dynamic compilation
just-in-time compilation |
0.0 | 1 | 2001 | Partial Method Compilation using Dynamic Profile Information · OOPSLA 2001 |
Methods — techniques the papers use, named apart from their topics
quaternion convolutional neural network · 1.0SO(3)-equivariant kernel · 1.0datalog · 0.1context numbering · 0.0cloning · 0.0binary decision diagrams · 0.0static analysis · 0.0escape analysis · 0.0dynamic profiling · 0.0points-to escape graphs · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2022 | Auditing saliency cropping algorithmsabstractIn this paper, we audit saliency cropping algorithms used by Twitter, Google and Apple to investigate issues pertaining to the male-gaze cropping phenomenon as well as race-gender biases that emerge in post-cropping survival ratios of face-images constituting 3 × 1 grid images. In doing so, we present the first formal empirical study which suggests that the worry of a male-gaze-like image cropping phenomenon on Twitter is not at all far-fetched and it does occur with worryingly high prevalence rates in real-world full-body single-female-subject images shot with logo-littered backdrops. We uncover that while all three saliency cropping frameworks considered in this paper do exhibit acute racial and gender biases, Twitter’s saliency cropping framework uniquely elicits high male-gaze cropping prevalence rates. In order to facilitate reproducing the results presented here, we are open-sourcing both the code and the datasets that we curated at shorturl.at/iuzK9. We hope the computer vision community and saliency cropping researchers will build on the results presented here and extend these investigations to similar frameworks deployed in the real world by other companies such as Microsoft and Facebook. Abeba Birhane, Vinay Uday Prabhu, John Whaley |
WACV | 3 |
| 2021 | Rotation-Invariant Gait Identification with Quaternion Convolutional Neural Networks (Student Abstract)abstractAccelerometric gait identification systems should ideally be robust to changes in device orientation from the enrollment phase to the deployment phase. However, traditional Convolutional Neural Networks (CNNs) used in these systems compensate poorly for such distributional shifts. In this paper, we target this problem by introducing an SO(3)-equivariant quaternion convolutional kernel inside the CNN. Our architecture (Quaternion CNN) significantly outperforms a traditional CNN in a multi-user gait classification setting. Additionally, the kernels learned by QCNN can be visualized as basis-independent trajectory fragments in Euclidean space, a novel mode of feature visualization and extraction. Vinay Uday Prabhu, Angela Gu, John Whaley |
AAAI | 4 |
| 2008 | Securing web applications with static and dynamic information flow trackingabstractSQL injection and cross-site scripting are two of the most common security vulnerabilities that plague web applications today. These and many others result from having unchecked data input reach security-sensitive operations. This paper describes a language called PQL (Program Query Language) that allows users to declare to specify information flow patterns succinctly and declaratively. We have developed a static context-sensitive, but flow-insensitive information flow tracking analysis that can be used to find all the vulnerabilities in a program. In the event that the analysis generates too many warnings, the result can be used to drive a model-checking system to analyze more precisely. Model checking is also used to automatically generate the input vectors that expose the vulnerability. Any remaining behavior these static analyses have not isolated may be checked dynamically. The results of the static analyses may be used to optimize these dynamic checks. Monica S. Lam, Michael C. Martin, Benjamin Livshits, John Whaley |
PEPM | 4 |
| 2006 | Effective static race detection for JavaabstractWe present a novel technique for static race detection in Java programs, comprised of a series of stages that employ a combination of static analyses to successively reduce the pairs of memory accesses potentially involved in a race. We have implemented our technique and applied it to a suite of multi-threaded Java programs. Our experiments show that it is precise, scalable, and useful, reporting tens to hundreds of serious and previously unknown concurrency bugs in large, widely-used programs with few false alarms. Mayur Naik, Alex Aiken, John Whaley |
PLDI | 3 |
| 2005 | Reflection Analysis for Java
Benjamin Livshits, John Whaley, Monica S. Lam |
APLAS | 2 |
| 2005 | Using Datalog with Binary Decision Diagrams for Program Analysis
John Whaley, Dzintars Avots, Michael Carbin, Monica S. Lam |
APLAS | 1 |
| 2005 | Heuristics for Profile-Driven Method-Level Speculative ParallelizationabstractThread level speculation (TLS) is an effective technique for extracting parallelism from sequential code. Method calls provide good templates for the boundaries of speculative threads as they often describe independent tasks. However, selecting the most profitable methods to speculate on is difficult as it involves complicated trade-offs between speculation violations, thread overheads, and resource utilization. This paper presents a first analysis of heuristics for automatic selection of speculative threads across method boundaries using a dynamic or profile-driven compiler. We study the potential of three classes of heuristics that involve increasing amounts of profiling information and runtime complexity. Several of the heuristics allow for speculation to start at internal method points, nested speculation, and speculative thread preemption. Using a set of Java benchmarks, we demonstrate that careful thread selection at method boundaries leads to speedups of 1.4 to 1.8 on practical TLS hardware. Single-pass heuristics that filter out less profitable methods using simple speedup estimates lead to the best average performance by consistently providing a good balance between over- and under-speculation. On the other hand, multi-pass heuristics that perform additional filtering by taking into account interactions between nested method calls often lead to significant under-speculation and perform poorly. John Whaley, Christoforos E. Kozyrakis |
ICPP | 1 |
| 2005 | Context-sensitive program analysis as database queriesabstractProgram analysis has been increasingly used in software engineering tasks such as auditing programs for security vulnerabilities and finding errors in general. Such tools often require analyses much more sophisticated than those traditionally used in compiler optimizations. In particular, context-sensitive pointer alias information is a prerequisite for any sound and precise analysis that reasons about uses of heap objects in a program. Context-sensitive analysis is challenging because there are over 1014 contexts in a typical large program, even after recursive cycles are collapsed. Moreover, pointers cannot be resolved in general without analyzing the entire program. Monica S. Lam, John Whaley, Benjamin Livshits, Michael C. Martin, Dzintars Avots, Michael Carbin, Christopher Unkel |
PODS | 2 |
| 2005 | Joeq: A virtual machine and compiler infrastructure
John Whaley |
Sci. Comput. Program. | 1 |
| 2004 | Cloning-based context-sensitive pointer alias analysis using binary decision diagramsabstractThis paper presents the first scalable context-sensitive, inclusion-based pointer alias analysis for Java programs. Our approach to context sensitivity is to create a clone of a method for every context of interest, and run a context-insensitive algorithm over the expanded call graph to get context-sensitive results. For precision, we generate a clone for every acyclic path through a program's call graph, treating methods in a strongly connected component as a single node. Normally, this formulation is hopelessly intractable as a call graph often has 10 acyclic paths or more. We show that these exponential relations can be computed efficiently using binary decision diagrams (BDDs). Key to the scalability of the technique is a context numbering scheme that exposes the commonalities across contexts. We applied our algorithm to the most popular applications available on Sourceforge, and found that the largest programs, with hundreds of thousands of Java bytecodes, can be analyzed in under 20 minutes. This paper shows that... John Whaley, Monica S. Lam |
PLDI | 1 |
| 2002 | Automatic extraction of object-oriented component interfaces
John Whaley, Michael C. Martin, Monica S. Lam |
ISSTA | 1 |
| 2002 | An Efficient Inclusion-Based Points-To Analysis for Strictly-Typed Languages
John Whaley, Monica S. Lam |
SAS | 1 |
| 2001 | Partial Method Compilation using Dynamic Profile InformationabstractThe traditional tradeoff when performing dynamic compilation is that of fast compilation time versus fast code performance. Most dynamic compilation systems for Java perform selective compilation and/or optimization at a method granularity. This is the not the optimal granularity level. However, compiling at a sub-method granularity is thought to be too complicated to be practical. This paper describes a straightforward technique for performing compilation and optimizations at a finer, sub-method granularity. We utilize dynamic profile data to determine intra-method code regions that are rarely or never executed, and compile and optimize the code without those regions. If a branch that was predicted to be rare is actually taken at run time, we fall back to the interpreter or dynamically compile another version of the code. By avoiding compiling and optimizing code that is rarely executed, we are able to decrease compile time significantly, with little to no degradation in performance. Futhermore, ignoring rarely-executed code can open up more optimization opportunities on the common paths. We present two optimizations---partial dead code elimination and rare-path-sensitive pointer and escape analysis---that take advantage of rare path information. Using these optimizations, our technique is able to improve performance beyond the compile time improvements John Whaley |
OOPSLA | 1 |
| 1999 | Compositional Pointer and Escape Analysis for Java ProgramsabstractThis paper presents a combined pointer and escape analysis algorithm for Java programs. The algorithm is based on the abstraction of points-to escape graphs, which characterize how local variables and fields in objects refer to other objects. Each points-to escape graph also contains escape information, which characterizes how objects allocated in one region of the program can escape to be accessed by another region. The algorithm is designed to analyze arbitrary regions of complete or incomplete programs, obtaining complete information for objects that do not escape the analyzed regions. John Whaley, Martin C. Rinard |
OOPSLA | 1 |