VLDB 2026 Research / reviewers in the wild / expert
Buddhika Chamith
dblp:176/1222
· DBLP profile ↗
3ranked-venue papers
2as first author
0since 2021 · last 2017
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 3 · 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
2 papers |
Software maintenance and evolution · 38% Program analysis · 33% Debugging and program repair · 29% | |
| Computer architecture, parallel and distributed computing, and storage systems
1 paper |
Processor architecture and microarchitecture · 100% |
Topics — the 2 heaviest of 4, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Software maintenance and evolution › software updates
software patching |
0.3 | 2 | 2017 | Living on the edge: rapid-toggling probes with cross-modification on x86 · PLDI 2016 Instruction punning: lightweight instrumentation for x86-64 · PLDI 2017 |
Program analysis › dynamic analysis
dynamic instrumentation |
0.3 | 1 | 2017 | Instruction punning: lightweight instrumentation for x86-64 · PLDI 2017 |
Methods — techniques the papers use, named apart from their topics
statistical profiling · 0.5binary instrumentation · 0.5probe injection · 0.3
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2017 | Compiling Tree Transforms to Operate on Packed RepresentationsabstractWhen written idiomatically in most programming languages, programs that traverse and construct trees operate over pointer-based data structures, using one heap object per-leaf and per-node. This representation is efficient for random access and shape-changing modifications, but for traversals, such as compiler passes, that process most or all of a tree in bulk, it can be inefficient. In this work we instead compile tree traversals to operate on pointer-free pre-order serializations of trees. On modern architectures such programs often run significantly faster than their pointer-based counterparts, and additionally are directly suited to storage and transmission without requiring marshaling. We present a prototype compiler, Gibbon, that compiles a small first-order, purely functional language sufficient for tree traversals. The compiler transforms this language into intermediate representation with explicit pointers into input and output buffers for packed data. The key compiler technologies include an effect system for capturing traversal behavior, combined with an algorithm to insert destination cursors. We evaluate our compiler on tree transformations over a real-world dataset of source-code syntax trees. For traversals touching the whole tree, such as maps and folds, packed data allows speedups of over 2x compared to a highly-optimized pointer-based baseline. Michael Vollmer 0003, Sarah Spall, Buddhika Chamith, Laith Sakka, Chaitanya Koparkar, Milind Kulkarni 0001, Sam Tobin-Hochstadt, Ryan Newton |
ECOOP | 3 |
| 2017 | Instruction punning: lightweight instrumentation for x86-64abstractExisting techniques for injecting probes into running applications are limited; Buddhika Chamith, Bo Joel Svensson, Luke Dalessandro, Ryan Newton |
PLDI | 1 |
| 2016 | Living on the edge: rapid-toggling probes with cross-modification on x86abstractDynamic probe injection is now a widely used method to debug performance in production. Current techniques for dynamic probing of native code, however, rely on an expensive stop-the-world approach: binary changes are made within a safe state of the program---typically in which all the program threads are halted---to ensure that another thread executing the modified code region doesn't step into a partially-modified code. Stop-the-world patching is not scalable. In contrast, low overhead, scalable probes that can be rapidly toggled on and off in-place would open up new use cases for statistical profilers and language implementations, even traditional ahead-of-time, native-code compilers. In this paper we introduce safe cross-modification protocols that mutate x86 code between threads but do not require quiescing threads, resulting in radically lower overheads than existing solutions. A key problem is handling instructions that straddle cache lines. We empirically evaluate existing x86 architectures to derive a safe policy given current processor behavior, and we argue that future architectures should clarify the semantics of instruction fetching to make cheap cross-modification easier and future proof. Buddhika Chamith, Bo Joel Svensson, Luke Dalessandro, Ryan Newton |
PLDI | 1 |