This page is no longer actively updated as of March 2012. Please
see the web page
for the PLSE group for more recent information on
programming-languages research at the University of Washington,
including more recent publications. We will keep this older WASP page
for archival purposes and to avoid creating dead links.
Publications (in reverse chronological order)
Copyright notice
Note: See authors' homepages for additional publications by
the authors; this page lists publications by group members while
they were group members.
- Proactive detection of collaboration conflicts (FSE 2011)
Yuriy Brun, Reid Holmes, Michael D. Ernst, David Notkin
- Leveraging existing instrumentation to automatically infer invariant-constrained models (FSE 2011)
Ivan Beschastnikh, Yuriy Brun, Sigurd Schneider, Michael Sloan, Michael D. Ernst
- Combined Static and Dynamic Automated Test Generation (ISSTA 2011)
Sai Zhang, David Saff, Yingyi Bu, and Michael D. Ernst
- Tunable static inference for Generic Universe Types (ECOOP 2011)
Werner M. Dietl, Michael D. Ernst, Peter Müller
- C3: An Experimental, Extensible, Reconfigurable Platform for
HTML-based Applications (WebApps 2011)
Benjamin Lerner, Brian Burg, Herman Venter and
Wolfram Schulte
- Isolating and Understanding Concurrency Errors Using Reconstructed Execution Fragments (PLDI 2011)
Brandon Lucia, Benjamin P. Wood, Luis Ceze
- EnerJ: Approximate Data Types for Safe and General Low-Power
Computation (PLDI 2011)
Adrian Sampson, Werner Dietl, Emily Fortuna, Danushen Gnanapragasam, Luis Ceze, Dan Grossman
- Region-Based Dynamic Separation for STM Haskell (TRANSACT 2011)
Laura Effinger-Dean, Dan Grossman
- The Impact of Memory Models on Software Reliability in Multiprocessors (PODC 2011)
Alexander Jaffe, Luis Ceze, Laura Effinger-Dean,
Thomas Moscibroda, Karin Strauss
- Extended Sequential Reasoning for Data-Race-Free Programs (MSPC 2011)
Laura Effinger-Dean, Hans-J. Boehm, Dhruva Chakrabarti and
Pramod Joisha
- Data-Race Exceptions Have Benefits Beyond the Memory Model (MSPC 2011)
Benjamin P. Wood, Luis Ceze, Dan Grossman
- Inference of field initialization (ICSE 2011)
Fausto Spoto, Michael D. Ernst
- Building and using pluggable type-checkers (ICSE 2011)
Werner Dietl, Stephanie Dietzel, Michael D. Ernst, Kıvanç Muşlu, Todd Schiller
- Always-available static and dynamic feedback (ICSE 2011)
Michael Bayne, Richard Cook, Michael D. Ernst
- RCDC: A Relaxed-Consistency Deterministic Computer (ASPLOS 2011)
Joseph Devietti, Jacob Nelson, Tom Bergan, Luis Ceze, Dan Grossman
- ASF: AMD64 Extension for Lock-free Data Structures and Transactional Memory (MICRO 2010)
Jaewoong Chung, Luke Yen, Stephan Diestelhorst, Martin Pohlack, Michael Hohmuth, David Christie, Dan Grossman
- Speculative Analysis: Exploring Future Development States of Software (FoSER 2010)
Yuriy Brun, Reid Holmes, Michael D. Ernst, David Notkin
- Rethinking the Economics of Software Engineering (FoSER 2010)
Todd W. Schiller, Michael D. Ernst
- Ownership and Immutability in Generic Java (OOPSLA 2010)
Yoav Zibin, Alex Ponatin, Paley Li, Mahmood Ali, Michael D. Ernst
- Composable Specifications for Structured Shared-Memory Communication (OOPSLA 2010)
Benjamin P. Wood, Adrian Sampson, Luis Ceze, Dan Grossman
- Supporting Dynamic, Third-Party Code Customizations in JavaScript
Using Aspects (OOPSLA 2010)
Benjamin S. Lerner, Herman Venter, Dan Grossman
- Ready-For-Use:
3 Weeks of Parallelism and Concurrency in a Required Second-Year
Data-Structures Course (Curricula for Concurrency 2010)
Dan Grossman
- Synoptic: Summarizing System Logs with Refinement (SLAML 2010)
Sigurd Schneider, Ivan Beschastnikh, Slava Chernyak, Michael D. Ernst, Yuriy Brun
- HaLoop: Efficient Iterative Data Processing on Large Clusters (VLDB 2010)
Yingyi Bu, Bill Howe, Magdalena Balazinska, Michael D. Ernst
- Finding Bugs in Web Applications Using Dynamic Test Generation and Explicit State Model Checking (TSE 2010)
Shay Artzi, Adam Kieżun, Julian Dolby, Frank Tip, Danny Dig, Amit Paradkar, Michael D. Ernst
- How Tests and Proofs Impede One Another: The Need for Always-On Static and Dynamic Feedback (TAP 2010)
Michael D. Ernst
- Language Support for Extensible Web Browsers (APLWACA 2010)
Benjamin S. Lerner, Dan Grossman
- ParaTimer:
A Progress Indicator for MapReduce DAGs (SIGMOD 2010)
Kristi Morton, Magdalena Balazinska, Dan Grossman
- Lock Prediction (HotPar 2010)
Brandon Lucia, Joe Devietti, Tom Bergan, Luis Ceze, Dan Grossman
- Using Twinning to Adapt Programs to Alternative APIs (ICSE 2010)
Marius Nita, David Notkin
- CoreDet:
A Compiler and Runtime System for Deterministic Multithreaded
Execution (ASPLOS 2010)
Tom Bergan, Joe Devietti, Owen Anderson, Luis Ceze, Dan Grossman
- Toward A Progress Indicator for Parallel Queries (ICDE 2010)
Kristi Morton, Abe Friesen, Magdalena Balazinska, Dan Grossman
- Automatically Patching Errors in Deployed Software (SOSP 2009)
Jeff H. Perkins, Sunghun Kim, Sam Larsen, Saman Amarasinghe, Jonathan Bachrach, Michael Carbin, Carlos Pacheco, Frank Sherwood, Stelios Sidiroglou, Greg Sullivan, Weng-Fai Wong, Yoav Zibin, Michael D. Ernst, Martin Rinard
- HAMPI: A Solver for String Constraints (ISSTA 2009)
Adam Kieżun, Vijay Ganesh, Philip J. Guo, Pieter Hooimeijer, Michael D. Ernst
- Refactoring Sequential Java Code for Concurrency Via Concurrent Libraries (ICSE 2009)
Danny Dig, John Marrero, Michael D. Ernst
- Automatic Creation of SQL Injection and Cross-Site Scripting Attacks (ICSE 2009)
Adam Kieżun, Philip J. Guo, Karthick Jayaraman, Michael D. Ernst
- White-Box
Approaches for Improved Testing and Analysis of Configurable
Systems (ICSE 2009, New Ideas and Emerging Results Track)
Marius Nita, David Notkin
- Programming
Idioms for Transactional Events (PLACES 2009)
Matthew Kehrt, Laura Effinger-Dean, Michael Schmitz, Dan Grossman
- A Formal Definition and Evaluation of Parameter Immutability (ASE journal 2009)
Shay Artzi, Jaime Quinonez, Adam Kieżun, Michael D. Ernst
- Transactional Events for ML (ICFP 2008)
Laura Effinger-Dean, Matthew Kehrt, Dan Grossman
-
A Model of Dynamic Separation for Transactional Memory
(CONCUR 2008)
Martin Abadi, Tim Harris, Katherine F. Moore
- Automatic Transformation of Bit-Level C Code to Support Multiple
Equivalent Data Layouts (CC 2008)
Marius Nita and Dan Grossman
- A Theory of Linear Objects (FOOL 2008)
Matthew Kehrt and Jonathan Aldrich
-
Cluster Computing for Web-Scale Data Processing (SIGCSE 2008)
Aaron Kimball, Sierra Michels-Slettvet, and
Christophe Bisciglia
-
A Theory of Platform-Dependent Low-Level Software (POPL 2008)
Marius Nita, Dan Grossman, and Craig Chambers
- High-Level Small-Step Operational Semantics for Transactions
(POPL 2008)
Katherine F. Moore and Dan Grossman
-
Software Transactions Meet First-Class Continuations
(SCHEME 2007)
Aaron Kimball and Dan Grossman
-
The Transactional Memory / Garbage Collection Analogy (OOPSLA 2007)
Dan Grossman
- Automatic Inference of Optimizer Flow Functions from Semantic
Meanings (PLDI 2007)
Erika Rice Scherpelz, Sorin Lerner, and Craig Chambers
- Searching for Type-Error Messages (PLDI 2007)
Benjamin Lerner, Matthew Flower, Dan Grossman and Craig Chambers
-
Enforcing Isolation and Ordering in STM (PLDI 2007)
Tatiana Shpeisman, Vijay Menon, Ali-Reza
Adl-Tabatabai, Steve Balensiefer, Dan Grossman, Richard Hudson,
Katherine F. Moore, and Bratin Saha
- Automatically Inferring Structural Changes for Matching
Across Program Versions (ICSE 2007)
Miryung Kim, David Notkin, Dan Grossman
-
Safe Manual Memory Management in Cyclone (Science of Computer
Programming 2006)
Nikhil Swamy, Michael Hicks, Greg Morrisett, Dan
Grossman, and Trevor Jim
- Atomicity via Source-to-Source Translation
(MSPC 2006)
Benjamin Hindman and Dan Grossman
- What Do High-Level Memory Models Mean for Transactions? (MSPC 2006)
Dan Grossman, Jeremy Manson, William Pugh
- Seminal: Searching for ML Type-Error Messages (ML Workshop 2006)
Benjamin Lerner, Dan Grossman and Craig Chambers
- Parameterized Modules for Classes and Extensible Functions (ECOOP 2006)
Keunwoo Lee and Craig Chambers
- Quantified Types in an Imperative Language
(TOPLAS 2006)
Dan Grossman
- MultiJava: Design Rationale,
Compiler Implementation, and Applications
(TOPLAS 2006)
Curtis Clifton, Todd Millstein, Gary T. Leavens, and Craig Chambers
- Automatically
Proving the Correctness of Program Analyses and Transformations
(Ph.D. Dissertation 2006)
Sorin Lerner
- Automatic Staged Compilation
(Ph.D. Dissertation 2005)
Matthai Philipose
-
Preventing Format-String Attacks via Automatic and Efficient Dynamic Checking (CCS
2005)
Michael F. Ringenburg and Dan Grossman
-
AtomCaml: First-Class Atomicity via Rollback (ICFP
2005)
Michael F. Ringenburg and Dan Grossman
-
Types for Describing Coordinated Data Structures (TLDI
2005)
Michael F. Ringenburg and Dan Grossman
-
Automatically Inferring Sound Dataflow Functions from Dataflow Fact
Schemas (COCV 2005)
Erika Rice, Sorin Lerner, and Craig Chambers
- Automated
Soundness Proofs for Dataflow Analyses and Transformations via
Local Rules (POPL 2005)
Sorin Lerner, Todd Millstein, Erika Rice, and Craig
Chambers
- Ownership Domains: Separating Aliasing Policy from Mechanism (ECOOP 2004)
Jonathan Aldrich and
Craig Chambers
- The
Cecil Language: Specification and
Rationale (Technical report, 1995-2004)
Craig Chambers and the Cecil Group
- Experience
With Safe Manual Memory-Management in Cyclone (ISMM
2004)
Michael Hicks, Greg
Morrisett, Dan Grossman, Trevor Jim.
- Reconciling
Software Extensibility
with Modular Program Reasoning (Ph.D. Dissertation 2003)
Todd Millstein
- Constraint-Bounded
Polymorphism: an
Expressive
and Practical Type System for Object-Oriented Languages (Ph.D.
Dissertation 2003)
Vassily Litvinov
- Using
Types to Enforce Architectural Structure
(Ph.D. Dissertation 2003)
Jonathan Aldrich.
- HydroJ:
Object-Oriented Pattern Matching for
Evolvable Distributed Systems (OOPSLA 2003)
Keunwoo Lee, Anthony LaMarca, and Craig Chambers
- Relaxed
MultiJava: Balancing
Extensibility and Modular Typechecking (OOPSLA 2003)
Todd Millstein, Mark Reay, and Craig Chambers
- Language
Support for Connector
Abstractions (ECOOP 2003)
Jonathan Aldrich, Vibha Sazawal, David Notkin, and
Craig Chambers
- Automatically
Proving the Correctness of Compiler Optimizations
(PLDI 2003)
Sorin Lerner, Todd Millstein, and Craig Chambers
- Comprehensive
Synchronization Elimination
for Java (Science of Computer Programming 2003)
Jonathan Aldrich, Emin Gun Sirer, Craig Chambers,
and Susan Eggers
- Alias
Annotations for Program Understanding
(OOPSLA 2002)
Jonathan Aldrich, Valentin Kostadinov, and Craig
Chambers
- Architectural
Reasoning in ArchJava
(ECOOP 2002)
Jonathan Aldrich, Craig Chambers, and David
Notkin>
- Modular
Typechecking for Hierarchically
Extensible Datatypes and Functions (ICFP 2002)
Todd Millstein, Colin Bleckner, and Craig Chambers
-
ArchJava: Connecting Software Architecture
to Implementation (ICSE 2002)
Jonathan Aldrich, Craig Chambers, and David
Notkin
- Composing
Dataflow Analyses and
Transformations (POPL 2002)
Sorin Lerner, David Grove, and Craig Chambers
- Towards
Automatic Construction of Staged Compilers (POPL 2002)
Matthai Philipose, Craig Chambers, Susan Eggers
- A
Framework for Call Graph Construction Algorithms
(TOPLAS 2001)
David Grove and Craig Chambers
- MultiJava:
Modular Open Classes and
Symmetric Multiple Dispatch for Java (OOPSLA 2000)
Curtis Clifton, Gary T. Leavens, Craig Chambers, and
Todd Millstein
- Efficient
Multiple and Predicate
Dispatching (OOPSLA 1999)
Craig Chambers and Weimin Chen
- Static
Analyses for Eliminating
Unnecessary Synchronization from Java Programs (SAS 1999)
Jonathan Aldrich, Craig Chambers, Emin Gun Sirer,
and Susan Eggers
- Modular
Statically Typed Multimethods
(I&C, ECOOP 1999)
Todd Millstein and Craig Chambers
- Effective
Interprocedural
Optimization of Object-Oriented Languages (Ph.D. Dissertation 1998)
David Grove
- Constraint-Based
Polymorphism in Cecil:
Towards a Practical and Static Type System (OOPSLA 1998)
Vassily Litvinov
- Predicate
Dispatching: A Unified Theory of
Dispatch (ECOOP 1998)
Michael Ernst, Craig Kaplan, and Craig Chambers
- Fast
Interprocedural Class Analysis
(POPL 1998)
Greg DeFouw, David Grove, and Craig Chambers
- Call
Graph Construction in
Object-Oriented Languages (OOPSLA 1997)
David Grove, Greg DeFouw, Jeffrey Dean, and Craig
Chambers
- BeCecil,
a Core Object-Oriented Language
with Block Structure and Multimethods: Semantics and Typing (FOOL
1997)
Craig Chambers and Gary Leavens
- Whole-Program
Optimization of
Object-Oriented Languages (Ph.D. Dissertation 1996)
Jeffrey Dean
- Vortex:
An Optimizing Compiler for
Object-Oriented Languages (OOPSLA 1996)
Jeffrey Dean, Greg DeFouw, David Grove, Vassily
Litvinov, and
Craig Chambers
- Synergies
Between Object-Oriented
Programming Language Design and Implementation Research (ISOTAS
1996)
Craig Chambers
- Frameworks
for Intra- and Interprocedural
Dataflow Analysis (Technical report 1996)
Craig Chambers, Jeffrey Dean, and David Grove
- Whole-Program
Optimization of
Object-Oriented Languages (Technical report 1996)
Craig Chambers, Jeffrey Dean, and David Grove
- Expressive,
Efficient Instance Variables
(1996)
Jeffrey Dean, David Grove, Craig Chambers, and
Vassily Litvinov
- Profile-Guided
Receiver Class Prediction
(OOPSLA 1995)
David Grove, Jeffrey Dean, Charles Garrett, and
Craig Chambers
- A
Framework for Selective
Recompilation in the Presence of Complex Intermodule Dependencies
(ICSE 1995)
Craig Chambers, Jeffrey Dean, and David Grove
- The
Impact of Interprocedural Class
Analysis on Optimization (CASCON 1995)
David Grove
- Typechecking
and Modules for Multi-Methods
(OOPSLA 1994 and TOPLAS 1995)
Craig Chambers and Gary Leavens
- Optimization
of Object-Oriented Programs
Using Static Class Hierarchy Analysis (ECOOP 1995)
Jeffrey Dean, David Grove, and Craig Chambers
- Selective
Specialization for
Object-Oriented Languages (PLDI 1995)
Jeffrey Dean, Craig Chambers, and David Grove
- Towards
Better Inlining Decisions
Using Inlining Trials (L&FP 1994)
Jeffrey Dean and Craig Chambers
- Predicate
Classes (ECOOP 1993)
Craig Chambers
- Object-Oriented
Multi-Methods in Cecil
(ECOOP 1992)
Craig Chambers