Demo Data from VLDB 2026 / reviewers in the wild / expert
Frances Perry
dblp:82/6177
· DBLP profile ↗
6ranked-venue papers
3as 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 · 5 · 3 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
2 papers |
Programming languages and type systems · 57% Program verification · 23% Compilers and program optimization · 20% | |
| Computer architecture, parallel and distributed computing, and storage systems
2 papers |
Parallel and multicore computing · 68% Hardware reliability and fault tolerance · 22% High-performance computing · 10% | |
| Databases, data mining, and information retrieval
1 paper |
Data stream processing · 100% |
Topics — the 8 heaviest of 10, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Programming languages and type systems › type systems › static typing
typed assembly language |
0.2 | 2 | 2008 | Type-preserving compilation for large-scale optimizing object-oriented compilers · PLDI 2008 Fault-tolerant typed assembly language · PLDI 2007 |
Parallel and multicore computing
data-parallel programming |
0.1 | 1 | 2010 | FlumeJava: easy, efficient data-parallel pipelines · PLDI 2010 |
Parallel and multicore computing
parallel programming models |
0.1 | 1 | 2010 | FlumeJava: easy, efficient data-parallel pipelines · PLDI 2010 |
Compilers and program optimization
optimizing compiler |
0.1 | 1 | 2008 | Type-preserving compilation for large-scale optimizing object-oriented compilers · PLDI 2008 |
Programming languages and type systems › language implementation
type-preserving compilation |
0.1 | 1 | 2008 | Type-preserving compilation for large-scale optimizing object-oriented compilers · PLDI 2008 |
Hardware reliability and fault tolerance › soft errors
transient fault |
0.1 | 1 | 2007 | Fault-tolerant typed assembly language · PLDI 2007 |
High-performance computing › data-intensive computing
large-scale data processing |
0.0 | 1 | 2010 | FlumeJava: easy, efficient data-parallel pipelines · PLDI 2010 |
Program verification
proof-carrying code |
0.0 | 1 | 2008 | Type-preserving compilation for large-scale optimizing object-oriented compilers · PLDI 2008 |
Methods — techniques the papers use, named apart from their topics
windowing semantics · 0.2dataflow model · 0.2type system · 0.1operational semantics · 0.1formal verification · 0.1mapreduce · 0.1dataflow graph optimization · 0.1type-preserving compilation · 0.1
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2015 | The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data ProcessingabstractUnbounded, unordered, global-scale datasets are increasingly common in day-to-day business (e.g. Web logs, mobile usage statistics, and sensor networks). At the same time, consumers of these datasets have evolved sophisticated requirements, such as event-time ordering and windowing by features of the data themselves, in addition to an insatiable hunger for faster answers. Meanwhile, practicality dictates that one can never fully optimize along all dimensions of correctness, latency, and cost for these types of input. As a result, data processing practitioners are left with the quandary of how to reconcile the tensions between these seemingly competing propositions, often resulting in disparate implementations and systems. We propose that a fundamental shift of approach is necessary to deal with these evolved requirements in modern data processing. We as a field must stop trying to groom unbounded datasets into finite pools of information that eventually become complete, and instead live and breathe under the assumption that we will never know if or when we have seen all of our data, only that new data will arrive, old data may be retracted, and the only way to make this problem tractable is via principled abstractions that allow the practitioner the choice of appropriate tradeoffs along the axes of interest: correctness, latency, and cost. In this paper, we present one such approach, the Dataflow Model, along with a detailed examination of the semantics it enables, an overview of the core principles that guided its design, and a validation of the model itself via the real-world experiences that led to its development. Tyler Akidau, Robert Bradshaw, Craig Chambers, Slava Chernyak, Rafael Fernández-Moctezuma, Reuven Lax, Sam McVeety, Daniel Mills, Frances Perry, Eric Schmidt 0001, Sam Whittle |
Proc. VLDB Endow. | 9 |
| 2010 | FlumeJava: easy, efficient data-parallel pipelinesabstractMapReduce and similar systems significantly ease the task of writing data-parallel code. However, many real-world computations require a pipeline of MapReduces, and programming and managing such pipelines can be difficult. We present FlumeJava, a Java library that makes it easy to develop, test, and run efficient data-parallel pipelines. At the core of the FlumeJava library are a couple of classes that represent immutable parallel collections, each supporting a modest number of operations for processing them in parallel. Parallel collections and their operations present a simple, high-level, uniform abstraction over different data representations and execution strategies. To enable parallel operations to run efficiently, FlumeJava defers their evaluation, instead internally constructing an execution plan dataflow graph. When the final results of the parallel operations are eventually needed, FlumeJava first optimizes the execution plan, and then executes the optimized operations on appropriate underlying primitives (e.g., MapReduces). The combination of high-level abstractions for parallel data and computation, deferred evaluation and optimization, and efficient parallel primitives yields an easy-to-use system that approaches the efficiency of hand-optimized pipelines. FlumeJava is in active use by hundreds of pipeline developers within Google. Craig Chambers, Ashish Raniwala, Frances Perry, Stephen Adams 0001, Robert R. Henry 0001, Robert Bradshaw, Nathan Weizenbaum |
PLDI | 3 |
| 2008 | Type-preserving compilation for large-scale optimizing object-oriented compilersabstractType-preserving compilers translate well-typed source code, such as Java or C#, into verifiable target code, such as typed assembly language or proof-carrying code. This paper presents the implementation of type-preserving compilation in a complex, large-scale optimizing compiler. Compared to prior work, this implementation supports extensive optimizations, and it verifies a large portion of the interface between the compiler and the runtime system. This paper demonstrates the practicality of type-preserving compilation in complex optimizing compilers: the generated typed assembly language is only 2.3% slower than the base compiler's generated untyped assembly language, and the type-preserving compiler is 82.8% slower than the base compiler. Chris Hawblitzel, Frances Perry, Michael Emmi, Jeremy Condit, Derrick Coetzee, Polyvios Pratikakis |
PLDI | 3 |
| 2008 | Reasoning about Control Flow in the Presence of Transient Faults
Frances Perry, David Walker 0001 |
SAS | 1 |
| 2007 | Fault-tolerant typed assembly languageabstractA transient hardware fault occurs when an energetic particle strikes a transistor, causing it to change state. Although transient faults do not permanently damage the hardware, they may corrupt computations by altering stored values and signal transfers. In this paper, we propose a new scheme for provably safe and reliable computing in the presence of transient hardware faults. In our scheme, software computations are replicated to provide redundancy while special instructions compare the independently computed results to detect errors before writing critical data. In stark contrast to any previous efforts in this area, we have analyzed our fault tolerance scheme from a formal, theoretical perspective. To be specific, first, we provide an operational semantics for our assembly language, which includes a precise formal definition of our fault model. Second, we develop an assembly-level type system designed to detect reliability problems in compiled code. Third, we provide a formal specification for program fault tolerance under the given fault model and prove that all well-typed programs are indeed fault tolerant. In addition to the formal analysis, we evaluate our detection scheme and show that it only takes 34% longer to execute than the unreliable version. Frances Perry, Lester Mackey, George A. Reis, Jay Ligatti, David I. August, David Walker 0001 |
PLDI | 1 |
| 2006 | Expressing heap-shape contracts in linear logicabstractContracts (dynamically checked programmer assertions) are a widely accepted mechanism for specifying, checking and documenting properties of software components. Most, if not all, contract systems expect programmers to use the native programming language to express their program invariants. While this is most effective for many simple invariants, expressing properties of data structures and aliasing patterns can be extremely complicated. If written in the native language in an unstructured way, such contracts are bound to be unclear and ineffective as documentation. In this paper, we show how to use linear logic as a language of contracts for an imperative programming language. The high-level nature of our linear logical contracts makes specifying memory shape and aliasing properties of complex recursive data structures easy. Moreover, since we give our logic a clear, compositional semantics, the contracts serve as effective, executable documentation for programmer expectations. In order to evaluate the truth of our linear logical contracts at run time, we use a modified version of LolliMon, a linear logic programming language. Frances Perry, Limin Jia 0001, David Walker 0001 |
GPCE | 1 |