Craig Chambers
Prior to joining Google, he was a Professor in the Department of Computer Science and Engineering at the University of Washington, Seattle. He joined the faculty there in 1991. His research focused on programming languages, optimizing compilers, and object-oriented systems.
He received his S.B. degree from MIT in 1986, and his Ph.D. degree from Stanford in 1992, both in Computer Science.
He has won a number of awards, including the 2011 Dahl-Nygaard Senior Prize and several "best paper" awards.
Google Publications
-
Tyler Akidau, Robert Bradshaw, Craig Chambers, Slava Chernyak, Rafael J. Fernández-Moctezuma, Reuven Lax, Sam McVeety, Daniel Mills, Frances Perry, Eric Schmidt, Sam Whittle
Proceedings of the VLDB Endowment, vol. 8 (2015), pp. 1792-1803
-
FlumeJava: Easy, Efficient Data-Parallel Pipelines
Craig Chambers, Ashish Raniwala, Frances Perry, Stephen Adams, Robert Henry, Robert Bradshaw, Nathan
ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI), ACM New York, NY 2010, 2 Penn Plaza, Suite 701 New York, NY 10121-0701 (2010), pp. 363-375
Previous Publications
-
Automatic Inference of Optimizer Flow Functions from Semantic Meanings
Erika Rice Scherpelz, Sorin Lerner, Craig Chambers
Proc. PLDI 07, ACM Press (2007), pp. 135-145
-
Automated soundness proofs for dataflow analyses and transformations via local rules
Sorin Lerner, Todd D. Millstein, Erika Rice, Craig Chambers
POPL (2005), pp. 364-377
-
Cobalt: A Language for Writing Provably-Sound Compiler Optimizations
Sorin Lerner, Todd D. Millstein, Craig Chambers
Electr. Notes Theor. Comput. Sci., vol. 132 (2005), pp. 5-17
-
Modular typechecking for hierarchically extensible datatypes and functions
Todd D. Millstein, Colin Bleckner, Craig Chambers
ACM Trans. Program. Lang. Syst., vol. 26 (2004), pp. 836-889
-
Ownership Domains: Separating Aliasing Policy from Mechanism
Jonathan Aldrich, Craig Chambers
ECOOP (2004), pp. 1-25
-
Automatically proving the correctness of compiler optimizations
Sorin Lerner, Todd D. Millstein, Craig Chambers
PLDI (2003), pp. 220-231
-
Comprehensive synchronization elimination for Java
Jonathan Aldrich, Emin G, Craig Chambers, Susan J. Eggers
Sci. Comput. Program., vol. 47 (2003), pp. 91-120
-
HydroJ: object-oriented pattern matching for evolvable distributed systems
Keunwoo Lee, Anthony LaMarca, Craig Chambers
OOPSLA (2003), pp. 205-223
-
Language Support for Connector Abstractions
Jonathan Aldrich, Vibha Sazawal, Craig Chambers, David Notkin
ECOOP (2003), pp. 74-102
-
Relaxed MultiJava: balancing extensibility and modular typechecking
Todd D. Millstein, Mark Reay, Craig Chambers
OOPSLA (2003), pp. 224-240
-
Alias annotations for program understanding
Jonathan Aldrich, Valentin Kostadinov, Craig Chambers
OOPSLA (2002), pp. 311-330
-
ArchJava: connecting software architecture to implementation
Jonathan Aldrich, Craig Chambers, David Notkin
ICSE (2002), pp. 187-197
-
Architectural Reasoning in ArchJava
Jonathan Aldrich, Craig Chambers, David Notkin
ECOOP (2002), pp. 334-367
-
Architecture-centric programming for adaptive systems
Jonathan Aldrich, Vibha Sazawal, Craig Chambers, David Notkin
WOSS (2002), pp. 93-95
-
Composing dataflow analyses and transformations
Sorin Lerner, David Grove, Craig Chambers
POPL (2002), pp. 270-282
-
Improving program slicing with dynamic points-to data
Markus Mock, Darren C. Atkinson, Craig Chambers, Susan J. Eggers
SIGSOFT FSE (2002), pp. 71-80
-
Modular Statically Typed Multimethods
Todd D. Millstein, Craig Chambers
Inf. Comput., vol. 175 (2002), pp. 76-118
-
Modular typechecking for hierarchically extensible datatypes and functions
Todd D. Millstein, Colin Bleckner, Craig Chambers
ICFP (2002), pp. 110-122
-
Staged compilation
PEPM (2002), pp. 1-8
-
Towards automatic construction of staged compilers
Matthai Philipose, Craig Chambers, Susan J. Eggers
POPL (2002), pp. 113-125
-
A framework for call graph construction algorithms
David Grove, Craig Chambers
ACM Trans. Program. Lang. Syst., vol. 23 (2001), pp. 685-746
-
Dynamic points-to sets: a comparison with static analyses and potential applications in program understanding and optimization
Markus Mock, Manuvir Das, Craig Chambers, Susan J. Eggers
PASTE (2001), pp. 66-72
-
A Debate on Language and Tool Support for Design Patterns
Craig Chambers, Bill Harrison, John M. Vlissides
POPL (2000), pp. 277-289
-
Calpa: a tool for automating selective dynamic compilation
Markus Mock, Craig Chambers, Susan J. Eggers
MICRO (2000), pp. 291-302
-
DyC: an expressive annotation-directed dynamic compiler for C
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
Theor. Comput. Sci., vol. 248 (2000), pp. 147-199
-
MultiJava: modular open classes and symmetric multiple dispatch for Java
Curtis Clifton, Gary T. Leavens, Craig Chambers, Todd D. Millstein
OOPSLA (2000), pp. 130-145
-
The benefits and costs of DyC's run-time optimizations
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
ACM Trans. Program. Lang. Syst., vol. 22 (2000), pp. 932-972
-
An Evaluation of Staged Run-Time Optimizations in DyC
Brian Grant, Matthai Philipose, Markus Mock, Craig Chambers, Susan J. Eggers
PLDI (1999), pp. 293-304
-
An evaluation of staged run-time optimizations in DyC (with retrospective)
Brian Grant, Matthai Philipose, Markus Mock, Craig Chambers, Susan J. Eggers
Best of PLDI (1999), pp. 656-669
-
Dependence Analysis for Java
Craig Chambers, Igor Pechtchanski, Vivek Sarkar, Mauricio J. Serrano, Harini Srinivasan
LCPC (1999), pp. 35-52
-
Efficient Multiple and Predicated Dispatching
Craig Chambers, Weimin Chen
OOPSLA (1999), pp. 238-255
-
Modular Statically Typed Multimethods
Todd D. Millstein, Craig Chambers
ECOOP (1999), pp. 279-303
-
Static Analyses for Eliminating Unnecessary Synchronization from Java Programs
Jonathan Aldrich, Craig Chambers, Emin G, Susan J. Eggers
SAS (1999), pp. 19-38
-
Fast Interprocedural Class Analysis
Greg DeFouw, David Grove, Craig Chambers
POPL (1998), pp. 222-236
-
Predicate Dispatching: A Unified Theory of Dispatch
Michael D. Ernst, Craig S. Kaplan, Craig Chambers
ECOOP (1998), pp. 186-211
-
Annotation-Directed Run-Time Specialization in C
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
PEPM (1997), pp. 163-178
-
Call Graph Construction in Object-Oriented Languages
David Grove, Greg DeFouw, Jeffrey Dean, Craig Chambers
OOPSLA (1997), pp. 108-124
-
Expressive, Efficient Instance Variables
Jeffrey Dean, David Grove, Craig Chambers, Vassily Litvinov
University of Washington (1996)
-
Fast, Effective Dynamic Compilation
Joel Auslander, Matthai Philipose, Craig Chambers, Susan J. Eggers, Brian N. Bershad
PLDI (1996), pp. 149-159
-
Synergies Between Object-Oriented Programming Language Design and Implementation Research
ISOTAS (1996), pp. 250-259
-
Towards Reusable, Extensible Components
ACM Comput. Surv., vol. 28 (1996), pp. 192
-
Vortex: An Optimizing Compiler for Object-Oriented Languages
Jeffrey Dean, Greg DeFouw, David Grove, Vassily Litvinov, Craig Chambers
OOPSLA, San Jose, CA (1996), pp. 83-100
-
A Framework for Selective Recompilation in the Presence of Complex Intermodule Dependencies
Craig Chambers, Jeffrey Dean, David Grove
ICSE, Seattle, Washington (1995), pp. 221-230
-
Extensibility, Safety and Performance in the SPIN Operating System
Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin G, Marc E. Fiuczynski, David Becker, Craig Chambers, Susan J. Eggers
SOSP (1995), pp. 267-284
-
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
Jeffrey Dean, David Grove, Craig Chambers
ECOOP (1995), pp. 77-101
-
Profile-Guided Receiver Class Prediction
David Grove, Jeffrey Dean, Charles Garrett, Craig Chambers
OOPSLA, Austin, TX (1995), pp. 108-123
-
SPIN - An Extensible Microkernel for Application-specific Operating System Services
Brian N. Bershad, Craig Chambers, Susan J. Eggers, Chris Maeda, Dylan McNamee, Przemyslaw Pardyak, Stefan Savage, Emin G
Operating Systems Review, vol. 29 (1995), pp. 74-77
-
Selective Specialization for Object-Oriented Languages
Jeffrey Dean, Craig Chambers, David Grove
PLDI, La Jolla, CA (1995), pp. 93-102
-
Typechecking and Modules for Multimethods
Craig Chambers, Gary T. Leavens
ACM Trans. Program. Lang. Syst., vol. 17 (1995), pp. 805-843
-
Identifying Profitable Specialization in Object-Oriented Languages
Jeffrey Dean, Craig Chambers, David Grove
Workshop on Partial Evaluation & Semantics-based Program Manipulation, Orlando, FL (1994), pp. 85-96
-
SPIN - An Extensible Microkernel for Application-specific Operating System Services
Brian N. Bershad, Craig Chambers, Susan J. Eggers, Chris Maeda, Dylan McNamee, Przemyslaw Pardyak, Stefan Savage, Emin G
ACM SIGOPS European Workshop (1994), pp. 68-71
-
Towards Better Inlining Decisions Using Inlining Trials
Proceedings of the 1994 Conference on Lisp and Functional Programming (L&FP'94), Orlando, FL, pp. 273-282
-
Typechecking and Modules for Multi-Methods
Craig Chambers, Gary T. Leavens
OOPSLA (1994), pp. 1-15
-
Efficient implementation of object-oriented programming lanaguages (abstract)
Craig Chambers, David Ungar
OOPS Messenger, vol. 4 (1993), pp. 224
-
Predicate Classes
ECOOP (1993), pp. 268-296
-
Debugging Optimized Code with Dynamic Deoptimization
Urs Hölzle, Craig Chambers, David Ungar
PLDI (1992), pp. 32-43
-
Object, Message, and Performance: How They Coexist in Self
David Ungar, Randall B. Smith, Craig Chambers, Urs Hölzle
IEEE Computer, vol. 25 (1992), pp. 53-64
-
Object-Oriented Multi-Methods in Cecil
ECOOP (1992), pp. 33-56
-
The Design and Implementation of the SELF Compiler, an Optimizing Compilet for Object-Oriented Programming Languages
Ph.D. Thesis, Stanford University (1992)
-
An Efficient Implementation of SELF, a Dynamically-Typed Object-Oriented Language Based on Prototypes
Craig Chambers, David Ungar, Elgin Lee
Lisp and Symbolic Computation, vol. 4 (1991), pp. 243-281
-
Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented Programs
Craig Chambers, David Ungar
Lisp and Symbolic Computation, vol. 4 (1991), pp. 283-310
-
Making Pure Object-Oriented Languages Practical
Craig Chambers, David Ungar
OOPSLA (1991), pp. 1-15
-
Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches
Urs Hölzle, Craig Chambers, David Ungar
ECOOP (1991), pp. 21-38
-
Organizing Programs Without Classes
Craig Chambers, David Ungar, Bay-Wei Chang, Urs Hölzle
Lisp and Symbolic Computation, vol. 4 (1991), pp. 223-242
-
Parents are Shared Parts of Objects: Inheritance and Encapsulation in SELF
Craig Chambers, David Ungar, Bay-Wei Chang, Urs Hölzle
Lisp and Symbolic Computation, vol. 4 (1991), pp. 207-222
-
Iterative Type Analysis and Extended Message Splitting: Optimizing Dynamically-Typed Object-Oriented Programs
Craig Chambers, David Ungar
PLDI (1990), pp. 150-164
-
A retrospective on:
Craig Chambers, David Ungar
Best of PLDI (1989), pp. 295-312
-
An Efficient Implementation of SELF - a Dynamically-Typed Object-Oriented Language Based on Prototypes
Craig Chambers, David Ungar, Elgin Lee
OOPSLA (1989), pp. 49-70
-
Customization: Optimizing Compiler Technology for SELF, A Dynamically-Typed Object-Oriented Programming Language
Craig Chambers, David Ungar
PLDI (1989), pp. 146-160










