Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data. A simulation from public publication records: the people listed were not invited and did not agree to review.
? Tutorial for this page

Stephen Adams 0001

dblp:02/3043-1 · DBLP profile ↗
← Back
4ranked-venue papers
1as first author
0since 2021 · last 2010
0000-0002-4725-2091ORCID · corroborated

Domains — the database's venue-derived domains; a paper can count in several

Software engineering, systems software and programming languages · 4 · 1 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.

Computer architecture, parallel and distributed computing, and storage systems
1 paper
Parallel and multicore computing · 87% High-performance computing · 13%
Software engineering, system software, and programming languages
2 papers
Program analysis · 75% Debugging and program repair · 25%

Topics — the 6 heaviest of 6, each with the papers that count most for it

TopicWeightPapersLastEvidence papers
Parallel and multicore computing
data-parallel programming
0.112010
FlumeJava: easy, efficient data-parallel pipelines · PLDI 2010
Parallel and multicore computing
parallel programming models
0.112010
FlumeJava: easy, efficient data-parallel pipelines · PLDI 2010
Program analysis
static analysis
0.122004
PSE: explaining program failures via postmortem static analysis · SIGSOFT FSE 2004
Software validation via scalable path-sensitive value flow analysis · ISSTA 2004
Debugging and program repair
fault localization
0.012004
PSE: explaining program failures via postmortem static analysis · SIGSOFT FSE 2004
Program analysis › data flow analysis
value-flow analysis
0.012004
Software validation via scalable path-sensitive value flow analysis · ISSTA 2004
High-performance computing › data-intensive computing
large-scale data processing
0.012010
FlumeJava: easy, efficient data-parallel pipelines · PLDI 2010

Methods — techniques the papers use, named apart from their topics

mapreduce · 0.1dataflow graph optimization · 0.1symbolic evaluation · 0.0bit-vectorization · 0.0alias analysis · 0.0
YearPublicationVenuePosition
2010 FlumeJava: easy, efficient data-parallel pipelines
abstract
MapReduce 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
PLDI4
2004 Software validation via scalable path-sensitive value flow analysis
abstract
In this paper, we present a new algorithm for tracking the flow of values through a program. Our algorithm represents a substantial improvement over the state of the art. Previously described value flow analyses that are control-flow sensitive do not scale well, nor do they eliminate value flow information from infeasible execution paths (i.e., they are path-insensitive). Our algorithm scales to large programs, and it is path-sensitive.The efficiency of our algorithm arises from three insights: The value flow problem can be "bit-vectorized" by tracking the flow of one value at a time; dataflow facts from different execution paths with the same value flow information can be merged; and information about complex aliasing that affects value flow can be plugged in from a different analysis.We have incorporated our analysis in ESP, a software validation tool. We have used ESP to validate the Windows operating system kernel (a million lines of code) against an important security property. This experience suggests that our algorithm scales to large programs, and is accurate enough to trace the flow of values in real code.
Nurit Dor, Stephen Adams 0001, Manuvir Das, Zhe Yang 0001
ISSTA2
2004 PSE: explaining program failures via postmortem static analysis
abstract
In this paper, we describe PSE (Postmortem Symbolic Evaluation), a static analysis algorithm that can be used by programmers to diagnose software failures. The algorithm requires minimal information about a failure, namely its kind (e.g. NULL dereference), and its location in the program's source code. It produces a set of execution traces along which the program can be driven to the given failure.
Roman Manevich, Manu Sridharan, Stephen Adams 0001, Manuvir Das, Zhe Yang 0001
SIGSOFT FSE3
2002 Speeding Up Dataflow Analysis Using Flow-Insensitive Pointer Analysis
Stephen Adams 0001, Thomas Ball 0001, Manuvir Das, Sorin Lerner, Sriram K. Rajamani, Mark Seigle, Westley Weimer
SAS1