Demo Data from VLDB 2026 / reviewers in the wild / expert
Jaco Geldenhuys
dblp:g/JacoGeldenhuys
· DBLP profile ↗
16ranked-venue papers
5as first author
1since 2021 · last 2025
0000-0002-5636-6656ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 11 · 3 first-author · 1 since 2021Theory of computation · 5 · 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
6 papers |
Program analysis · 84% Empirical software engineering · 6% Program verification · 6% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Distributed systems · 100% |
Topics — the 8 heaviest of 10, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
symbolic execution |
0.7 | 4 | 2015 | BLISS: Improved Symbolic Execution by Bounded Lazy Initialization with SAT Support · IEEE Trans. Software Eng. 2015 Statistical symbolic execution with informed sampling · SIGSOFT FSE 2014 Green: reducing, reusing and recycling constraints in program analysis · SIGSOFT FSE 2012 |
Program analysis › constraint solving
satisfiability checking |
0.2 | 1 | 2015 | BLISS: Improved Symbolic Execution by Bounded Lazy Initialization with SAT Support · IEEE Trans. Software Eng. 2015 |
Program analysis › static analysis
probabilistic program analysis |
0.2 | 1 | 2014 | Statistical symbolic execution with informed sampling · SIGSOFT FSE 2014 |
Program analysis
constraint solving |
0.1 | 1 | 2012 | Green: reducing, reusing and recycling constraints in program analysis · SIGSOFT FSE 2012 |
Program analysis › symbolic execution
probabilistic symbolic execution |
0.1 | 1 | 2012 | Probabilistic symbolic execution · ISSTA 2012 |
Empirical software engineering › developer studies
developer behavior |
0.1 | 1 | 2010 | Impendulo: debugging the programmer · ASE 2010 |
Software testing › test generation
test suite generation |
0.0 | 1 | 2012 | Probabilistic symbolic execution · ISSTA 2012 |
Program analysis › static analysis
static analysis tool evaluation |
0.0 | 1 | 2010 | Impendulo: debugging the programmer · ASE 2010 |
Methods — techniques the papers use, named apart from their topics
shadow testing · 1.7differential testing · 1.7dafny · 1.7field bound refinement · 0.2SAT solving · 0.2monte carlo sampling · 0.2hypothesis testing · 0.2bayesian estimation · 0.2symbolic execution · 0.1automated decision procedures · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Formally Verified Cloud-Scale AuthorizationabstractAll critical systems must evolve to meet the needs of a growing and diversifying user base. But supporting that evolution is challenging at increasing scale: Maintainers must find a way to ensure that each change does only what is intended, and will not inadvertently change behavior for existing users. This paper presents how we addressed this challenge for the Amazon Web Services (AWS) authorization engine, invoked 1 billion times per second, by using formal verification. Over a period of four years, we built a new authorization engine, one that behaves functionally the same as its predecessor, using the verification-aware programming language Dafny. We can now confidently deploy enhancements and optimizations while maintaining the highest assurance of both correctness and backward compatibility. We deployed the new engine in 2024 without incident and customers immediately enjoyed a threefold performance improvement. The methodology we followed to build this new engine was not an off-the-shelf application of an existing verification tool, and this paper presents several key insights: 1) Rather than prove correct the existing engine, written in Java, we found it more effective to write a new engine in Dafny, a language built for verification from the ground up, and then compile the result to Java. 2) To ensure performance, debuggability, and to gain trust from stakeholders, we needed to generate readable, idiomatic Java code, essentially a transliteration of the source Dafny. 3) To ensure that the specification matches the system's actual behavior, we performed extensive differential and shadow testing throughout the development process, ultimately comparing against 1015production samples prior to deployment. Our approach demonstrates how formal verification can be effectively applied to evolve critical legacy software at scale. Aleks Chakarov, Jaco Geldenhuys, Matthew Heck, Michael Hicks 0001, Sam Huang, Georges-Axel Jaloyan, Anjali Joshi, K. Rustan M. Leino, Mikael Mayer, Sean McLaughlin, Akhilesh Mritunjai, Clément Pit-Claudel, Sorawee Porncharoenwase, Florian Rabe 0001, Marianna Rapoport, Giles Reger, Cody Roux, Neha Rungta, Robin Salkeld, Matthias Schlaipfer, Daniel Schoepe, Johanna Schwartzentruber, Serdar Tasiran, Aaron Tomb, Emina Torlak, Jean-Baptiste Tristan, Lucas G. Wagner, Michael W. Whalen, Remy Willems, Tongtong Xiang, Taejoon Byun, Joshua M. Cohen, Ruijie Fang, Junyoung Jang 0001, Jakob Rath, Syeda Hira Taqdees, Dominik Wagner 0001, Yongwei Yuan |
ICSE | 2 |
| 2020 | COASTAL: Combining Concolic and Fuzzing for Java (Competition Contribution)abstractAbstract COASTAL is a program analysis tool for Java programs. It combines concolic execution and fuzz testing in a framework with built-in concurrency, allowing the two approaches to cooperate naturally. Willem Visser, Jaco Geldenhuys |
TACAS (2) | 2 |
| 2015 | BLISS: Improved Symbolic Execution by Bounded Lazy Initialization with SAT SupportabstractLazy Initialization (LI) allows symbolic execution to effectively deal with heap-allocated data structures, thanks to a significant reduction in spurious and redundant symbolic structures. Bounded lazy initialization (BLI) improves on LI by taking advantage of precomputed relational bounds on the interpretation of class fields in order to reduce the number of spurious structures even further. In this paper we present bounded lazy initialization with SAT support (BLISS), a novel technique that refines the search for valid structures during the symbolic execution process. BLISS builds upon BLI, extending it with field bound refinement and satisfiability checks. Field bounds are refined while a symbolic structure is concretized, avoiding cases that, due to the concrete part of the heap and the field bounds, can be deemed redundant. Satisfiability checks on refined symbolic heaps allow us to prune these heaps as soon as they are identified as infeasible, i.e., as soon as it can be confirmed that they cannot be extended to any valid concrete heap. Compared to LI and BLI, BLISS reduces the time required by LI by up to four orders of magnitude for the most complex data structures. Moreover, the number of partially symbolic structures obtained by exploring program paths is reduced by BLISS by over 50 percent, with reductions of over 90 percent in some cases (compared to LI). BLISS uses less memory than LI and BLI, which enables the exploration of states unreachable by previous techniques. Nicolás Rosner, Jaco Geldenhuys, Nazareno Aguirre, Willem Visser, Marcelo F. Frias |
IEEE Trans. Software Eng. | 2 |
| 2014 | Statistical symbolic execution with informed samplingabstractSymbolic execution techniques have been proposed recently for the probabilistic analysis of programs. These techniques seek to quantify the likelihood of reaching program events of interest, e.g., assert violations. They have many promising applications but have scalability issues due to high computational demand. To address this challenge, we propose a statistical symbolic execution technique that performs Monte Carlo sampling of the symbolic program paths and uses the obtained information for Bayesian estimation and hypothesis testing with respect to the probability of reaching the target events. To speed up the convergence of the statistical analysis, we propose Informed Sampling, an iterative symbolic execution that first explores the paths that have high statistical significance, prunes them from the state space and guides the execution towards less likely paths. The technique combines Bayesian estimation with a partial exact analysis for the pruned paths leading to provably improved convergence of the statistical analysis. We have implemented statistical symbolic execution with informed sampling in the Symbolic PathFinder tool. We show experimentally that the informed sampling obtains more precise results and converges faster than a purely statistical analysis and may also be more efficient than an exact symbolic analysis. When the latter does not terminate symbolic execution with informed sampling can give meaningful results under the same time and memory limits. Antonio Filieri, Corina Pasareanu, Willem Visser, Jaco Geldenhuys |
SIGSOFT FSE | 4 |
| 2014 | Ambiguity and structural ambiguity of symmetric difference NFAs
Brink van der Merwe, Lynette van Zijl, Jaco Geldenhuys |
Theor. Comput. Sci. | 3 |
| 2013 | Counting Minimal Symmetric Difference NFAs
Brink van der Merwe, Mark Farag, Jaco Geldenhuys |
LATA | 3 |
| 2013 | Symbolic PathFinder: integrating symbolic execution with model checking for Java bytecode analysis
Corina Pasareanu, Willem Visser, David H. Bushnell, Jaco Geldenhuys, Peter C. Mehlitz, Neha Rungta |
Autom. Softw. Eng. | 4 |
| 2012 | Probabilistic symbolic executionabstractThe continued development of efficient automated decision procedures has spurred the resurgence of research on symbolic execution over the past decade. Researchers have applied symbolic execution to a wide range of software analysis problems including: checking programs against contract specifications, inferring bounds on worst-case execution performance, and generating path-adequate test suites for widely used library code. Jaco Geldenhuys, Matthew B. Dwyer, Willem Visser |
ISSTA | 1 |
| 2012 | Green: reducing, reusing and recycling constraints in program analysisabstractThe analysis of constraints plays an important role in many aspects of software engineering, for example constraint satisfiability checking is central to symbolic execution. However, the norm is to recompute results in each analysis. We propose a different approach where every call to the solver is wrapped in a check to see if the result is not already available. While many tools use some form of results caching, the novelty of our approach is the persistence of results across runs, across programs being analyzed, across different analyses and even across physical location. Achieving such reuse requires that constraints be distilled into their essential parts and represented in a canonical form. Willem Visser, Jaco Geldenhuys, Matthew B. Dwyer |
SIGSOFT FSE | 2 |
| 2011 | Ambiguity of Unary Symmetric Difference NFAs
Brink van der Merwe, Lynette van Zijl, Jaco Geldenhuys |
ICTAC | 3 |
| 2010 | Impendulo: debugging the programmerabstractWe describe the Impendulo tool for fine-grained analyses of programmer behavior. The initial design goal was to create a system to answer the following simple question: "What kind of mistakes do programmers make and how often do they make these mistakes?" However it quickly became apparent that the tool can be used to also analyze other fundamental software engineering questions, such as, how good are static analysis tools at finding real errors?, what is the fault finding capability of automated test generation tools?, what is the influence of a bad specification?, etc. We briefly describe the tool and some of the insights gained from using it. Willem Visser, Jaco Geldenhuys |
ASE | 2 |
| 2009 | Exploring the Scope for Partial Order Reduction
Jaco Geldenhuys, Henri Hansen, Antti Valmari |
ATVA | 1 |
| 2008 | Cheap and Small CounterexamplesabstractMinimal counterexamples are desirable, but expensive to compute. We propose four algorithms for computing small counterexamples that approximate the shortest case. Three of these use a new algorithm for automata-theoretic linear-time model checking, based on an early algorithm by Dijkstra for detecting strongly connected components. All four of the approximation algorithms rely on transitions shuffling; we show that the default transition ordering can behave badly. The algorithms are compared to a standard shortest counterexample algorithm on a large public data set. Henri Hansen, Jaco Geldenhuys |
SEFM | 2 |
| 2005 | More efficient on-the-fly LTL verification with Tarjan's algorithm
Jaco Geldenhuys, Antti Valmari |
Theor. Comput. Sci. | 1 |
| 2004 | Tarjan's Algorithm Makes On-the-Fly LTL Verification More Efficient
Jaco Geldenhuys, Antti Valmari |
TACAS | 1 |
| 2001 | Techniques for Smaller Intermediary BDDs
Jaco Geldenhuys, Antti Valmari |
CONCUR | 1 |