Craig Chambers
#21,918
Most Influential Person Now
Craig Chambers's AcademicInfluence.com Rankings
Craig Chamberscomputer-science Degrees
Computer Science
#950
World Rank
#986
Historical Rank
Database
#7736
World Rank
#8043
Historical Rank
Download Badge
Computer Science
Craig Chambers's Degrees
- PhD Computer Science Stanford University
- Masters Computer Science Stanford University
- Bachelors Computer Science Stanford University
Similar Degrees You Can Earn
Why Is Craig Chambers Influential?
(Suggest an Edit or Addition)According to Wikipedia, Craig Chambers has been a computer scientist at Google since 2007. Prior to this, he was a Professor in the department of Computer Science and Engineering at the University of Washington. He received his B.S. degree in Computer Science from MIT in 1986 and his Ph.D. in Computer Science from Stanford in 1992. He is best known for the influential research language Self, which introduced prototypes as an alternative to classes, and code-splitting, a compilation technique that generates separate code paths for fast and general cases to speed execution of dynamically typed programs.
Craig Chambers's Published Works
Published Works
- Extensibility safety and performance in the SPIN operating system (1995) (1191)
- Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis (1995) (720)
- ArchJava: connecting software architecture to implementation (2002) (589)
- The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processing (2015) (549)
- FlumeJava: easy, efficient data-parallel pipelines (2010) (429)
- Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches (1991) (419)
- An efficient implementation of SELF, a dynamically-typed object-oriented language based on prototypes (1989) (379)
- MultiJava: modular open classes and symmetric multiple dispatch for Java (2000) (360)
- Call graph construction in object-oriented languages (1997) (342)
- Object-Oriented Multi-Methods in Cecil (1992) (337)
- Debugging optimized code with dynamic deoptimization (1992) (336)
- Customization: optimizing compiler technology for SELF, a dynamically-typed object-oriented programming language (1989) (299)
- A framework for call graph construction algorithms (2001) (263)
- Alias annotations for program understanding (2002) (263)
- Ownership Domains: Separating Aliasing Policy from Mechanism (2004) (209)
- Making pure object-oriented languages practical (1991) (191)
- DyC: an expressive annotation-directed dynamic compiler for C (2000) (186)
- Fast, effective dynamic compilation (1996) (184)
- The cecil language: specification and rationale (1993) (179)
- Predicate Classes (1993) (174)
- The design and implementation of the self compiler, an optimizing compiler for object-oriented programming languages (1992) (170)
- Predicate Dispatching: A Unified Theory of Dispatch (1998) (167)
- SPIN: an extensible microkernel for application-specific operating system services (1994) (163)
- Iterative type analysis and extended message splitting: Optimizing dynamically-typed object-oriented programs (1990) (155)
- Vortex: an optimizing compiler for object-oriented languages (1996) (151)
- Architectural Reasoning in ArchJava (2002) (146)
- An evaluation of staged run-time optimizations in DyC (1999) (146)
- Typechecking and modules for multi-methods (1994) (143)
- Static Analyses for Eliminating Unnecessary Synchronization from Java Programs (1999) (136)
- Automatically proving the correctness of compiler optimizations (2003) (135)
- Automated soundness proofs for dataflow analyses and transformations via local rules (2005) (134)
- Selective specialization for object-oriented languages (1995) (129)
- Organizing programs without classes (1991) (127)
- MultiJava: Design rationale, compiler implementation, and applications (2006) (122)
- Modular Statically Typed Multimethods (1999) (118)
- Profile-guided receiver class prediction (1995) (116)
- Composing dataflow analyses and transformations (2002) (99)
- Fast interprocedural class analysis (1998) (93)
- SPIN—an extensible microkernel for application-specific operating system services (1995) (91)
- Towards better inlining decisions using inlining trials (1994) (90)
- Searching for type-error messages (2007) (88)
- Language Support for Connector Abstractions (2003) (87)
- Parents are shared parts of objects: Inheritance and encapsulation in SELF (1991) (86)
- Whole-program optimization of object-oriented languages (1996) (85)
- Dynamic points-to sets: a comparison with static analyses and potential applications in program understanding and optimization (2001) (81)
- Efficient multiple and predicated dispatching (1999) (80)
- Annotation-directed run-time specialization in C (1997) (80)
- Improving program slicing with dynamic points-to data (2002) (77)
- Calpa: a tool for automating selective dynamic compilation (2000) (61)
- A debate on language and tool support for design patterns (2000) (58)
- Modular typechecking for hierarchically extensible datatypes and functions (2002) (54)
- Relaxed MultiJava: balancing extensibility and modular typechecking (2003) (52)
- The Cecil Language - Specification and Rationale - Version 3.0 (1995) (51)
- A Framework for Selective Recompilation in the Presence of Complex Intermodule Dependencies (1995) (45)
- Dependence Analysis for Java (1999) (45)
- HydroJ: object-oriented pattern matching for evolvable distributed systems (2003) (42)
- Object, message, and performance: how they coexist in Self (1992) (41)
- Seminal: searching for ML type-error messages (2006) (34)
- Frameworks for Intra- and Interprocedural Dataflow Analysis (1998) (33)
- Comprehensive synchronization elimination for Java (2003) (32)
- BeCecil, A Core Object-Oriented Language with Block Structure and Multimethods: Semantics and Typing (1997) (31)
- Program slicing with dynamic points-to sets (2005) (30)
- Identifying Profitable Specialization in Object-Oriented Languages (1994) (27)
- The benefits and costs of DyC's run-time optimizations (2000) (23)
- Automatic Dynamic Compilation Support for Event Dispatching in Extensible Systems (1998) (20)
- Calpa: atool for automating dynamic compilation (1999) (18)
- Automatic inference of optimizer flow functions from semantic meanings (2007) (18)
- Staged compilation (2002) (17)
- A theory of platform-dependent low-level software (2008) (17)
- Architecture-centric programming for adaptive systems (2002) (17)
- Towards automatic construction of staged compilers (2002) (15)
- CLOS Eiffel and Sather: A Comparison (1991) (15)
- Constraint-bounded polymorphism: an expressive and practical type system for object-oriented languages (2003) (12)
- Reconciling software extensibility with modular program reasoning (2003) (11)
- Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications (1998) (10)
- Component-Oriented Programming in ArchJava (2001) (9)
- Automating selective dynamic compilation (2002) (9)
- An Assessment of Call Graph Construction Algorithms (2000) (8)
- Parameterized Modules for Classes and Extensible Functions (2006) (7)
- Cobalt: A Language for Writing Provably-Sound Compiler Optimizations (2005) (7)
- Measurement and Application of Dynamic Receiver Class Distributions (2007) (7)
- MultiJava : Design Rationale , Compiler Implementation , and User Experience (2004) (7)
- Automatically Inferring Sound Dataflow Functions from Dataflow Fact Schemas (2005) (5)
- Proceedings of the 2015 International Symposium on Memory Management (2000) (5)
- Training Compilers to Make Better Inlining Decisions (1993) (5)
- Transforming New Product Development (1996) (5)
- Improving program slicing with dynamic points-to data (2002) (4)
- Constraint-Based Polymorphism in Cecil (1998) (4)
- Program Slicing Using Dynamic Points-To Data (2002) (4)
- A retrospective on: "customization: optimizing compiler technology for self, a dynamically-typed object-oriented programming language" (2004) (3)
- Automatically proving the correctness of program analyses and transformations (2006) (3)
- Predicate Dispatching: a Uniied Theory of Dispatch (3)
- A retrospective on: "an evaluation of staged run-time optimizations in DyC" (2004) (3)
- A Theory of Implementation-Dependent Low-Level Software (2006) (3)
- MultiJava: Modular Symmetric Multiple Dispatch and Extensible Classes for Java (2000) (3)
- Efficient implementation of object-oriented programming languages (abstract) (1992) (2)
- Towards reusable, extensible components (1996) (2)
- Synergies Between Object-Oriented Programming Language Design and Implementation Research (1996) (2)
- Comprehensive Synchronization Elimination for Java (PREPRINT) (2003) (1)
- Languages and Compilers for Parallel Computing - Toc (2015) (1)
- Appendix A . Raw Benchmark Data (1)
- IBM Research Report An Assessment of Call Graph Construction Algorithms (2000) (1)
- Architectural Reasoning in ArchJava1 (2002) (1)
- Overview of the Cecil/Vortex Project (1995) (0)
- Cost of Garbage Collection in the S ELF System Position Paper for the OOPSLA ’ 91 GC Workshop (2007) (0)
- The Design and Implementation of the SELF Compiler, an Optimizing Compilet for Object-Oriented Programming Languages (1992) (0)
- DyC (Panel Session) (2000) (0)
- Efficient implementation of object-oriented programming lanaguages (abstract) (1992) (0)
- Expressiveness, Simplicity, and Users (2011) (0)
- Towards Safe Modular Extensible Objects (1994) (0)
- 1 Identifying Profitable Specialization in Object-Oriented Languages (2013) (0)
- In PLDI ’ 96 1 Fast , Effective Dynamic Compilation (1996) (0)
- Proceedings of the ACM SIGPLAN 2004 Conference on Programming Language Design and Implementation 2004, Washington, DC, USA, June 9-11, 2004 (2004) (0)
- 1 Expressive , Efficient Instance Variables (1996) (0)
This paper list is powered by the following services:
Other Resources About Craig Chambers
What Schools Are Affiliated With Craig Chambers?
Craig Chambers is affiliated with the following schools: