Abstract Extensibility, Safety and Performance in the SPIN Operating System (2008)
Brian N. Bershad, Stefan Savage, Przemysław Pardyak, Emin Gün Sirer, Marc E. Fiuczynski, David Becker, ...
This paper describes the motivation, architecture and performance of SPIN, an extensible operating system. SPIN provides an extension infrastructure, together with a core set of extensible services,...
ABSTRACT Automatically Proving the Correctness of Compiler Optimizations (2008)
Sorin Lerner, Todd Millstein, Craig Chambers
We describe a technique for automatically proving compiler optimizations sound, meaning that their transformations are always semantics-preserving. We first present a domainspecific language, called...
Sorin Lerner, Sorin Lerner, Craig Chambers, Craig Chambers, Daniel Grossman, Sorin Lerner
This is to certify that I have examined this copy of a doctoral dissertation by
Abstract Object-Oriented Multi-Methods in Cecil (2008)
Multiple dispatching provides increased expressive power over single dispatching by guiding method lookup using the values of all arguments instead of only the receiver. However, existing languages...
Formal Definitions and Theory—syntax, semantics (2008)
Todd Millstein, Colin Bleckner, Craig Chambers
One promising approach for adding object-oriented (OO) facilities to functional languages like ML is to generalize the existing datatype and function constructs to be hierarchical and extensible, so...
An Evaluation of Staged Run-Time Optimizations in DyC Abstract (2008)
Brian Grant, Matthai Philipose, Markus Mock, Craig Chambers, Susan J. Eggers
Previous selective dynamic compilation systems have demonstrated that dynamic compilation can achieve performance improvements at low cost on small kernels, but they have had difficulty scaling to...
Sorin Lerner, Todd Millstein, Craig Chambers
We overview the current status and future directions of the Cobalt project. Cobalt is a domainspecific language for implementing compiler optimizations as guarded rewrite rules. Cobalt optimizations...
An Evaluation of Staged Run-Time Optimizations in DyC Abstract (2008)
Brian Grant, Matthai Philipose, Markus Mock, Craig Chambers, Susan J. Eggers
Previous selective dynamic compilation systems have demonstrated that dynamic compilation can achieve performance improvements at low cost on small kernels, but they have had difficulty scaling to...
ABSTRACT HydroJ: Object-Oriented Pattern Matching for Evolvable Distributed Systems (2008)
Keunwoo Lee, Anthony Lamarca, Craig Chambers
In an evolving software system, components must be able to change independently while remaining compatible with their peers. One obstacle to independent evolution is the brittle parameter problem:...
Object-oriented languages have suffe=d from poor perfor-mance caused by frequent and slow dynamically-bound pro-cedure calls. The best way to speed up a procedure call is to compile it out, but...
Sorin Lerner, Todd Millstein, Erika Rice, Craig Chambers, Rhodium Syntax, Decl Vardecls
This document contains a formal description of the Rhodium language. Section 1 presents the Rhodium syntax. Section 2 presents our composing framework, which is used to formalize Rhodium analyses....
Abstract Searching for Type-Error Messages (2008)
Benjamin S. Lerner, Matthew Flower, Dan Grossman, Craig Chambers
Advanced type systems often need some form of type inference to reduce the burden of explicit typing, but type inference often leads to poor error messages for ill-typed programs. This work pursues a...
Abstract In PEPM’97 Proceedings Annotation-Directed Run-Time Specialization in C (2008)
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
We present the design of a dynamic compilation system for C. Directed by a few declarative user annotations specifying where and on what dynamic compilation is to take place, a binding time analysis...
An Evaluation of Staged Run-Time Optimizations in DyC Abstract (2008)
Brian Grant, Matthai Philipose, Markus Mock, Craig Chambers, Susan J. Eggers
Previous selective dynamic compilation systems have demonstrated that dynamic compilation can achieve performance improvements at low cost on small kernels, but they have had difficulty scaling to...
Abstract Searching for Type-Error Messages (2008)
Benjamin S. Lerner, Matthew Flower, Dan Grossman, Craig Chambers
Advanced type systems often need some form of type inference to reduce the burden of explicit typing, but type inference often leads to poor error messages for ill-typed programs. This work pursues a...
Abstract Extensibility, Safety and Performance in the SPIN Operating System (2008)
Brian N. Bershad, Stefan Savage, Przemysław Pardyak, Emin Gün Sirer, Marc E. Fiuczynski, David Becker, ...
This paper describes the motivation, architecture and performance of SPIN, an extensible operating system. SPIN provides an extension infrastructure, together with a core set of extensible services,...
In PLDI’96 Fast, Effective Dynamic Compilation (2008)
Joel Ausl, Matthai Philipose, Craig Chambers, Susan J. Eggers, Brian N. Bershad
Dynamic compilation enables optimizations based on the values of invariant data computed at run-time. Using the values of these runtime constants, a dynamic compiler can eliminate their memory loads,...
Searching Type-error, Messages Benjamin, S. Lerner, Matthew Flower, Dan Grossman, Craig Chambers
Abstract Advanced type systems often need some form of type inference toreduce the burden of explicit typing, but type inference often leads to poor error messages for ill-typed programs. This work...
ABSTRACT Automatically Proving the Correctness of Compiler Optimizations (2008)
Sorin Lerner, Todd Millstein, Craig Chambers
We describe a technique for automatically proving compiler optimizations sound, meaning that their transformations are always semantics-preserving. We first present a domainspecific language, called...
A theory of platform-dependent low-level software (2008)
Marius Nita, Dan Grossman, Craig Chambers
The C language definition leaves the sizes and layouts of types partially unspecified. When a C program makes assumptions about type layout, its semantics is defined only on platforms (C compilers...
Towards Reusable, Extensible Components (2007)
Introduction The program development community has long wished for reusable software components: modules or data structures or (fine-grained) libraries which can be written and debugged once and then...
Entire and Meromorphic Solutions of Ordinary Differential Equations (2007)
Ivar Ekeland, Jeffrey Dean, David Grove, Craig Chambers, Kim B. Bruce, ...
. The abstract should summarize the contents of the paper using at least 70 and at most 150 words. It will be set in 9-point font size and be inset 1.0 cm from the right and left margins. There will...
Towards Safe Modular Extensible Objects (2007)
Chambers Leavens, Cecil Language, Gary T. Leavens, Gary T. Leavens, Craig Chambers, Craig Chambers, ...
We discuss the module system of the Cecil language, which has a flexible means of customizing views of objects. Multi-methods with invocation based on static scoping, a module system, and extension...
Cost of Garbage Collection in the (2007)
System Position, Craig Chambers
this paper we measure various costs associated with generation scavenging in the SELF system. We believe these are the first reported measurements of the overhead of a garbage collector for a...
Composing Dataflow Analyses and Transformations Technical Report UW-CSE-01-11-01 (2007)
Sorin Lerner, David Grove, Craig Chambers
Dataflow analyses can have mutually beneficial interactions. Previous efforts to exploit these interactions have either (1) iteratively performed each individual analysis until no further...
Architectural Reasoning in ArchJava Architectural Reasoning in ArchJava 1 (2007)
Jonathan Aldrich, Craig Chambers, David Notkin
Abstract. Software architecture describes the structure of a system, enabling more effective design, program understanding, and formal analysis. However, existing approaches decouple implementation...
Jonathan Aldrich, Valentin Kostadinov, Craig Chambers
One of the primary challenges in building and evolving large object-oriented systems is understanding aliasing between objects. Unexpected aliasing can lead to broken invariants, mistaken...
Abstract In PEPM’97 Proceedings Annotation-Directed Run-Time Specialization in C (2007)
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
We present the design of a dynamic compilation system for C. Directed by a few declarative user annotations specifying where and on what dynamic compilation is to take place, a binding time analysis...
Abstract DyC: An Expressive Annotation-Directed Dynamic Compiler for C (2007)
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
We present the design of DyC, a dynamic-compilation system for C based on run-time specialization. Directed by a few declarative user annotations that specify the variables and code on which dynamic...
Abstract DyC: An Expressive Annotation-Directed Dynamic Compiler for C (2007)
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
We present the design of DyC, a dynamic-compilation system for C based on run-time specialization. Directed by a few declarative user annotations that specify the variables and code on which dynamic...
The Benefits and Costs of DyC's Optimizations (2007)
Brian Grant, Markus Mock, Matthal Philipose, Craig Chambers, Susan J. Eggers
DyC selectively dynamically cronpiles progrmns durhg their execution, utilizhg the run-timecmnputed values of variables and data structures to apply optinizations that are based on partial...
1 DyC: An Expressive Annotation-Directed Dynamic Compiler for C (2007)
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
We present the design of DyC, a dynamic-compilation system for C based on run-time specialization. Directed by a few declarative user annotations that specify the variables and code on which dynamic...
In PEPM'97 Proceedings Annotation-Directed Run-Time Specialization in C (2007)
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
We present the design of a dynamic compilation system for C. Directed by a few declarative user annotations specifying where and on what dynamic compilation is to take place, a binding time analysis...
The Diesel language specification and rationale: Version 0.2 (2006)
NOTE: This document is still under construction! 1
Marius Nita, Dan Grossman, Craig Chambers
Abstract. We present a theory describing implementation-dependent assumptions that a C program might make, such as the size and alignment of data. We define a static analysis to encode such...
Parameterized modules for classes and extensible functions (2006)
Abstract. We present F(Eml), a language that combines classes, extensible functions, symmetric multiple dispatching, and a practical system for parameterized modules. Parameterized modules permit...
Automated Soundness Proofs for Dataflow Analyses and Transformations Via Local Rules (2005)
Sorin Lerner, Todd Millstein, Erika Rice, Craig Chambers
We present Rhodium, a new language for writing compiler optimizations that can be automatically proved sound. Unlike our previous work on Cobalt, Rhodium expresses optimizations using explicit...
C. Scott Ananian, Krste Asanović, Bradley C. Kuszmaul, Charles E. Leiserson, Sean Lie, M. A. Bender, ...
Unbounded transactional memory. In Proceedings of the 11th International Symposium on High-
Automated Soundness Proofs for Dataflow Analyses and Transformations Via Local Rules (2005)
Sorin Lerner, Todd Millstein, Erika Rice, Craig Chambers
We present Rhodium, a new language for writing compiler optimizations that can be automatically proved sound. Unlike our previous work on Cobalt, Rhodium expresses optimizations using explicit...
Approved for the Major Department (2005)
Sean Mcdirmid, Matthew Flatt, Gary Lindstrom, Craig Chambers, Gail Murphy, Martin Berzins, ...
has been read by each member of the following supervisory committee and by majority vote has been found to be satisfactory.
Automatic Staged Compilation (2005)
Matthai Philipose, Matthai Philipose, Craig Chambers, Daniel Grossman, Matthai Philipose
This is to certify that I have examined this copy of a doctoral dissertation by
MultiJava: Design rationale, compiler implementation, and applications (2004)
Curtis Clifton, Todd Millstein, Gary T. Leavens, Craig Chambers
MultiJava is a conservative extension of the Java programming language that adds symmetric multiple dispatch and open classes. Among other benefits, multiple dispatch provides a solution to the...
MultiJava: Design rationale, compiler implementation, and applications (2004)
Curtis Clifton, Todd Millstein, Gary T. Leavens, Craig Chambers, Curtis Clifton, Todd Millstein, ...
— abstract data types, classes and objects, control structures, inheritance,
Ownership Domains: Separating Aliasing Policy from Mechanism (2004)
Jonathan Aldrich, Craig Chambers
Abstract. Ownership types promise to provide a practical mechanism for enforcing stronger encapsulation by controlling aliasing in objectoriented languages. However, previous ownership type proposals...
MultiJava: Design rationale, compiler implementation, and applications (2004)
Curtis Clifton, Curtis Clifton, Todd Millstein, Todd Millstein, Gary T. Leavens, Gary T. Leavens, ...
— abstract data types, classes and objects, control structures, inheritance,
Chairs of Supervisory Committee: (2003)
Craig Chambers, Craig Chambers, David Notkin, David Notkin, Alan Borning, Jonathan Aldrich, ...
This is to certify that I have examined this copy of a doctoral dissertation by
Comprehensive synchronization elimination for Java (2003)
Jonathan Aldrich, Emin Gün Sirer, Craig Chambers, Susan J. Eggers
In this paper, we describe three novel analyses for eliminating unnecessary synchronization that remove over 70 % of dynamic synchronization operations on the majority of our 15 benchmarks and...
Language Support for Connector Abstractions (2003)
Jonathan Aldrich, Vibha Sazawal, Craig Chambers, David Notkin
Abstract. Software connectors are increasingly recognized as an important consideration in the design and implementation of object-oriented software systems. Connectors can be used to communicate...
Reconciling Software Extensibility with Modular Program Reasoning (2003)
Todd David Millstein, Todd David Millstein, Craig Chambers, Gaetano Borriello, Craig Chambers, David Notkin
Reading Committee: Date: and that any and all revisions required by the final examining committee have been made.
Automatically proving the correctness of compiler optimizations (2003)
Sorin Lerner, Todd Millstein, Craig Chambers
We describe a technique for automatically proving compiler optimizations sound, meaning that their transformations are always semantics-preserving. We first present a domain-specific language, called...
Automatically proving the correctness of compiler optimizations (2003)
Sorin Lerner, Todd Millstein, Craig Chambers
We describe a technique for automatically proving compiler optimizations sound, meaning that their transformations are always semantics-preserving. We first present a domain-specific language, called...
Comprehensive synchronization elimination for Java (2003)
Jonathan Aldrich, Emin Gün Sirer, Craig Chambers, Susan J. Eggers
In this paper, we describe three novel analyses for eliminating unnecessary synchronization that remove over 70 % of dynamic synchronization operations on the majority of our 15 benchmarks and...
Language Support for Connector Abstractions (2003)
Jonathan Aldrich, Vibha Sazawal, Craig Chambers, David Notkin
Abstract. Software connectors are increasingly recognized as an important consideration in the design and implementation of object-oriented software systems. Connectors can be used to communicate...
Comprehensive synchronization elimination for Java (2003)
Jonathan Aldrich, Emin Gn Sirer, Craig Chambers, Susan J. Eggers
In this paper, we describe three novel analyses for eliminating unnecessary synchronization that remove over 70 % of dynamic synchronization operations on the majority of our 15 benchmarks and...
Alias annotations for program understanding (2002)
Jonathan Aldrich, Valentin Kostadinov, Craig Chambers
One of the primary challenges in building and evolving large object-oriented systems is dealing with aliasing between objects. Unexpected aliasing can lead to broken invariants, mistaken assumptions,...
Architectural Reasoning in ArchJava (2002)
Jonathan Aldrich, Craig Chambers
Software architecture is a crucial part of the specification of component-based systems. Reasoning about software architecture can aid design, program understanding, and formal analysis. However,...
ArchJava: Connecting Software Architecture to Implementation (2002)
Jonathan Aldrich, Craig Chambers, David Notkin
Software architecture describes the structure of a system, enabling more effective design, program understanding, and formal analysis. However, existing approaches decouple implementation code from...
Alias annotations for program understanding (2002)
Jonathan Aldrich, Valentin Kostadinov, Craig Chambers
One of the primary challenges in building and evolving large object-oriented systems is understanding aliasing between objects. Unexpected aliasing can lead to broken invariants, mistaken...
Modular typechecking for hierarchically extensible datatypes and functions (2002)
Todd Millstein, Colin Bleckner, Craig Chambers
One promising approach for adding object-oriented (OO) facilities to functional languages like ML is to generalize the existing datatype and function constructs to be hierarchical and extensible, so...
Modular typechecking for hierarchically extensible datatypes and functions (2002)
Todd Millstein, Colin Bleckner, Craig Chambers
One promising approach for adding object-oriented (OO) facilities to functional languages like ML is to generalize the existing datatype and function constructs to be hierarchical and extensible, so...
doi:10.1006/inco.2002.3103 Modular Statically Typed Multimethods (2002)
Todd Millstein, Craig Chambers
Multimethods offer several well-known advantages over the single dispatching of conventional object-oriented languages, including a simple solution to the binary method problem, a natural...
Co-Chairs of Supervisory Committee: (2002)
Markus Ulrich Mock, Markus Ulrich Mock, Susan Eggers, Susan Eggers, Craig Chambers, Craig Chambers, ...
and have found that it is complete and satisfactory in all respects,
Architectural Reasoning in ArchJava (2002)
Jonathan Aldrich, Craig Chambers, David Notkin
Software architecture describes the structure of a system, enabling more effective design, program understanding, and formal analysis. However, existing approaches decouple implementation code from...
Alias annotations for program understanding (2002)
Jonathan Aldrich, Valentin Kostadinov, Craig Chambers
Building and evolving a large software system is challenging in part because it is difficult to understand the system’s architecture: how the system breaks down into parts, and how those parts...
Architecture-Centric Programming for Adaptive Systems (2002)
Jonathan Aldrich, Vibha Sazawal, Craig Chambers, David Notkin
Ubiquitous computing applications have the potential to transform our everyday experience with computers. However, these applications also pose new and demanding software engineering challenges, as...
Alias annotations for program understanding (2002)
Jonathan Aldrich, Valentin Kostadinov, Craig Chambers
One of the primary challenges in building and evolving large object-oriented systems is understanding aliasing between objects. Unexpected aliasing can lead to broken invariants, mistaken...
Architecture-Centric Programming for Adaptive Systems (2002)
Jonathan Aldrich, Vibha Sazawal, Craig Chambers, David Notkin
Ubiquitous computing services are a fast-growing and challenging class of self-healing systems that must adapt to constant failures and environmental changes. Writing robust ubiquitous computing code...
Architectural Reasoning in ArchJava (2002)
Jonathan Aldrich, Craig Chambers, David Notkin
Abstract. Software architecture describes the structure of a system, enabling more effective design, program understanding, and formal analysis. However, existing approaches decouple implementation...
Program Slicing Using Dynamic Points-to Data (2002)
Darren C. Atkinson, Markus Mock, Craig Chambers, Susan J. Eggers
Program slicing is a potentially beneficial analysis for aiding program understanding. However, slices of even small programs are often too large to be generally useful. Imprecise pointer analyses...
Program Slicing Using Dynamic Points-to Data (2002)
Darren C. Atkinson, Markus Mock, Craig Chambers, Susan J. Eggers
Program slicing is a potentially beneficial analysis for aiding program understanding. However, slices of even small programs are often too large to be generally useful. Imprecise pointer analyses...
Modular Statically Typed Multimethods (2002)
Todd Millstein, Craig Chambers
Multimethods offer several well-known advantages over the single dispatching of conventional object-oriented languages, including a simple solution to the "binary method" problem, a natural...
Composing dataflow analyses and transformations (2002)
Sorin Lerner, David Grove, Craig Chambers
Dataflow analyses can have mutually beneficial interactions. Previous efforts to exploit these interactions have either (1) iteratively performed each individual analysis until no further...
Improving Program Slicing with Dynamic Points-To Data (2002)
Markus Mock Science, Markus Mock, Darren C. Atkinson, Craig Chambers, Susan J. Eggers
understanding. However, slices of even small programs are often too large to be generally useful. Imprecise pointer analyses have been suggested as one cause of this problem. In this paper, we use...
Composing dataflow analyses and transformations (2002)
Sorin Lerner, David Grove, Craig Chambers
Dataflow analyses can have mutually beneficial interactions. Previous efforts to exploit these interactions have either (1) iteratively performed each individual analysis until no further...
Markus Mock, Manuvir Das, Craig Chambers, Susan J. Eggers
In this paper, we compare the behavior of pointers in C programs, as approximated by static pointer analysis algorithms, with the actual behavior of pointers when these programs are run. In order to...
Markus Mock, Markus Mock, Manuvir Das, Manuvir Das, Craig Chambers, Craig Chambers, ...
In this paper, we compare the behavior of pointers in C programs, as approximated by static pointer analysis algorithms, with the actual behavior of pointers when these programs are run. In order to...
Component-Oriented Programming in ArchJava (2001)
Jonathan Aldrich, Craig Chambers, David Notkin
Component-oriented programming supports constructing software systems by composing independent components into a software architecture. However, existing approaches decouple implementation code from...
Lawrence Snyder, Craig Chambers, E Christopher Lewis, E Christopher Lewis, E Christopher Lewis, E Christopher Lewis
This is to certify that I have examined this copy of a doctoral dissertation by
Generalized Aliasing as a Basis for Program Analysis Tools (2001)
Robert Callahan November, Frank Pfenning, Craig Chambers
Tools for automatic program analysis promise to improve programmer productivity by searching and summarizing large bodies of code. However, the phenomenon of aliasing --- different names being used...
Abstract Achieving Robust Performance in Parallel Programming Languages (2001)
E Christopher Lewis, E Christopher Lewis, E Christopher Lewis, Craig Chambers, Burton Smith, E Christopher Lewis
and have found that it is complete and satisfactory in all respects, and that any and all revisions required by the final examining committee have been made.
A framework for call graph construction algorithms (2001)
A large number of call graph construction algorithms for object-oriented and functional languages have been proposed, each embodying different tradeoffs between analysis cost and call graph...
Michael D. Ernst, Michael D. Ernst, Craig Chambers, Pedro M. Domingos, William G. Griswold, David Notkin, ...
This is to certify that I have examined this copy of a doctoral dissertation by
The benefits and costs of DyC’s run-time optimizations (2000)
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
DyC selectively dynamically compiles programs during their execution, utilizing the run-timecomputed values of variables and data structures to apply optimizations that are based on partial...
MultiJava: Modular Open Classes and Symmetric Multiple Dispatch for Java (2000)
Curtis Clifton, Gary T. Leavens, Craig Chambers, Todd Millstein, Curtis Clifton, Gary T. Leavens
compilation.
Calpa: a tool for automating selective dynamic compilation (2000)
Markus Mock, Craig Chambers, Susan J. Eggers
Selective dynamic compilation systems, typically driven by annotations that identify run-time constants, can achieve significant program speedups. However, manually inserting annotations is a tedious...
An Assessment of Call Graph Construction Algorithms (2000)
A large number of call graph construction algorithms for object-oriented and functional languages have been proposed, each embodying different tradeoffs between analysis cost and call graph...
MultiJava: Modular Open Classes and Symmetric Multiple Dispatch for Java (2000)
Curtis Clifton, Gary T. Leavens, Craig Chambers, Todd Millstein
We present MultiJava, a backward-compatible extension to Java supporting open classes and symmetric multiple dispatch. Open classes allow one to add to the set of methods that an existing class...
Michael D. Ernst, Michael D. Ernst, David Notkin, Craig Chambers, Pedro M. Domingos, William G. Griswold, ...
This is to certify that I have examined this copy of a doctoral dissertation by
DyC: An Expressive Annotation-Directed Dynamic Compiler for C (2000)
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
We present the design of DyC, a dynamic-compilation system for C based on run-time specialization. Directed by a few declarative user annotations that specify the variables and code on which dynamic...
MultiJava: Modular symmetric multiple dispatch and extensible classes for Java (2000)
Copyright Curtis Clifton, Craig Chambers, Craig Chambers, Todd Millstein, Todd Millstein, Curtis Clifton, ...
Languages] Language Classifications — object-oriented languages; D.3.3 [Programming Languages] Language Constructs and Features — abstract data types, classes and objects, control structures,...
Static Analyses for Eliminating Unnecessary Synchronization from Java Programs (1999)
Jonathan Aldrich, Craig Chambers, Emin Gun Sirer, Susan Eggers
Abstract. This paper presents and evaluates a set of analyses designed to reduce synchronization overhead in Java programs. Monitor-based synchronization in Java often causes significant overhead,...
Dependence analysis for java (1999)
Craig Chambers, Igor Pechtchanski, Vivek Sarkar, Mauricio J. Serrano, Harini Srinivasan
Abstract. We describe a novel approach to performing data dependence analysis for Java in the presence of Java's "non-traditional " language features such as exceptions,...
Modular Statically Typed Multimethods (1999)
Todd Millstein, Craig Chambers
Multimethods offer several well-known advantages over the single dispatching of conventional object-oriented languages, including a simple solution to the "binary method " problem,...
Efficient Multiple and Predicate Dispatching (1999)
The speed of message dispatching is an important issue in the overall performance of object-oriented programs. We have developed an algorithm for constructing efficient dispatch functions that...
Modular Statically Typed Multimethods (1999)
Todd Millstein And, Todd Millstein, Craig Chambers, S [#]o
× GFMethodTypes × LocalTypeStore m Î Modules = ModTypeEnv × ModTypeStore cnc Î Concrete = Const* abs Î Abstract = Const* isa Î Isa = (Const × ConstType)* gfms Î GFMethodTypes = (Const ×...
Static Analyses for Eliminating Unnecessary Synchronization from Java Programs (1999)
Jonathan Aldrich, Craig Chambers, Emin Gün Sirer, Emin Gun Sirer, Susan Eggers
. This paper presents and evaluates a set of analyses designed to reduce synchronization overhead in Java programs. Monitor-based synchronization in Java often causes significant overhead, accounting...
Static Analyses for Eliminating Unnecessary Synchronization from Java Programs (1999)
Jonathan Aldrich Craig, Craig Chambers, Emin Gun Sirer, Susan Eggers
. This paper presents and evaluates a set of analyses designed to reduce synchronization overhead in Java programs. Monitor-based synchronization in Java often causes significant overhead, accounting...
Modular Statically Typed Multimethods (1999)
Todd Millstein, Todd Millstein, Craig Chambers, Craig Chambers
Multimethods offer several well-known advantages over the single dispatching of conventional object-oriented languages, including a simple solution to the "binary method" problem and a form...
Modular Statically Typed Multimethods (1999)
Todd Millstein, Craig Chambers
Abstract. Multimethods offer several well-known advantages over the single dispatching of conventional object-oriented languages, including a simple solution to the “binary method ” problem,...
Static analyses for eliminating unnecessary synchronizations from Java programs (1999)
Jonathan Aldrich, Craig Chambers, Emin Gun Sirer, Susan Eggers
Abstract. This paper presents and evaluates a set of analyses designed to reduce synchronization overhead in Java programs. Monitor-based synchronization in Java often causes significant overhead,...
SPIN - An Extensible Microkernel for Application-Specific Operating System Services. (1998)
Bershad, Brian N., McNamee, Dylan, Chambers, Craig, Eggers, Susan, Sirer, Emin G.
Application domains, such as multimedia, databases, and parallel computing, require operating system services with high performance and high functionality. Existing operating systems provide fixed...
Predicate Dispatching: A Unified Theory of Dispatch (1998)
Michael Ernst, Craig Kaplan, Craig Chambers
www.cs.washington.edu/research/projects/cecil/ Abstract. Predicate dispatching generalizes previous method dispatch mechanisms by permitting arbitrary predicates to control method applicability and...
Fast interprocedural class analysis (1998)
Greg Defouw, Greg Defouw, David Grove, David Grove, Craig Chambers, Craig Chambers
Previous algorithms for interprocedural control flow analysis of higher-order and/or object-oriented languages have been described that perform propagation or constraint satisfaction and take O(N 3)...
Fast Interprocedural Class Analysis (1998)
Greg Defouw, David Grove, Craig Chambers
Previous algorithms for interprocedural control flow analysis of higher-order and/or object-oriented languages have been described that perform propagation or constraint satisfaction and take O(N 3 )...
DyC: An Expressive Annotation-Directed Dynamic Compiler for C (1998)
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
We present the design of DyC, a dynamic-compilation system for C based on run-time specialization. Directed by a few declarative user annotations that specify the variables and code on which dynamic...
Constraint-Based Polymorphism in Cecil (1998)
Vassily Litvinov, Craig Chambers
We are developing a static type system for object-oriented languages that strives to guarantee statically and completely the absence of certain large classes of run-time errors, to enable polymorphic...
Predicate Dispatching: A Unified Theory of Dispatch (1998)
Michael Ernst, Craig Kaplan, Craig Chambers
. Predicate dispatching generalizes previous method dispatch mechanisms by permitting arbitrary predicates to control method applicability and by using logical implication between predicates as the...
Constraint-Based Polymorphism in Cecil (1998)
Vassily Litvinov, Craig Chambers
We are developing a static type system for object-oriented languages that strives to guarantee statically and completely the absence of certain large classes of run-time errors, to enable polymorphic...
Efficient Predicate Dispatching (1998)
The speed of method dispatching is an important issue in the overall performance of object-oriented programs. We have developed an algorithm for constructing efficient dispatch functions for the...
Craig Chambers, Gary T. Leavens
We present and analyze the semantics and static type system for BeCecil, a theoretical (core) language with multimethods. BeCecil is a simple and orthogonal version of object-oriented languages like...
Fast Interprocedural Class Analysis (1997)
Greg Defouw, Greg Defouw, David Grove, David Grove, Craig Chambers, Craig Chambers
Previous algorithms for interprocedural control flow analysis of higher-order and/or object-oriented languages have been described that perform propagation or constraint satisfaction and take O(N 3 )...
Craig Chambers, Gary T. Leavens
We present and analyze the semantics and static type system for BeCecil, a theoretical (core) language with multimethods. BeCecil is a simple and orthogonal version of object-oriented languages like...
Frameworks for intra- and interprocedural dataflow analysis (1996)
Craig Chambers, Craig Chambers, Jeffrey Dean, Jeffrey Dean, David Grove, David Grove
Because dataflow analyses are difficult to implement from scratch, reusable dataflow analysis frameworks have been developed which provide generic support facilities for managing propagation of...
Abstract Expressive, Efficient Instance Variables (1996)
Jeffrey Dean, David Grove, Craig Chambers, Vassily Litvinov
The decoupling of clients of abstractions from the implementations of those abstractions is a key benefit of objectoriented programming. However, many object-oriented languages provide instance...
Whole-program optimization of object-oriented languages (1996)
Craig Chambers, Jeffrey Dean, David Grove, Craig Chambers, Jeffrey Dean, David Grove
We describe Vortex, an optimizing compiler intended to produce high-quality code for programs written in a heavily-object-oriented style. To achieve this end, Vortex includes a number of intra- and...
By pursuing language design and language implementation research in parallel, interactions between the two research areas can be exploited to make faster, better progress in both. We report on our...
Automatic dynamic compilation support for event dispatching in extensible systems (1996)
Craig Chambers, Susan J. Eggers, Joel Ausl, Matthai Philipose, Markus Mock, Przemyslaw Pardyak
This paper describes extensions to an automatic dynamic compilation framework to support optimized event dispatching in the SPIN extensible operating system. 1
Whole-Program Optimization of Object-Oriented Languages (1996)
Craig Chambers, Craig Chambers, Jeffrey Dean, Jeffrey Dean, David Grove, David Grove
We describe Vortex, an optimizing compiler intended to produce high-quality code for programs written in a heavily-object-oriented style. To achieve this end, Vortex includes a number of intra- and...
Frameworks for Intra- and Interprocedural Dataflow Analysis (1996)
Craig Chambers, Jeffrey Dean, David Grove, David Grove
Because dataflow analyses are difficult to implement from scratch, reusable dataflow analysis frameworks have been developed which provide generic support facilities for managing propagation of...
Craig Chambers, Craig Chambers, Gary T. Leavens, Gary T. Leavens
We present and analyze the semantics and static type system for BeCecil, a theoretical (core) language with multimethods. BeCecil is a simple and orthogonal version of object-oriented languages like...
Vortex: An Optimizing Compiler for Object-Oriented Languages (1996)
Jeffrey Dean, Greg Defouw, David Grove, Vassily Litvinov, Craig Chambers
Previously, techniques such as class hierarchy analysis and profile-guided receiver class prediction have been demonstrated to greatly improve the performance of applications written in pure...
Fast, Effective Dynamic Compilation (1996)
Joel Auslander, Matthai Philipose, Craig Chambers, Susan J. Eggers, Brian N. Bershad
Dynamic compilation enables optimizations based on the values of invariant data computed at run-time. Using the values of these runtime constants, a dynamic compiler can eliminate their memory loads,...
The Cecil Language, Specification and Rationale - Version 2.0 (1996)
Cecil is a purely object-oriented language intended to support rapid construction of high-quality, extensible software. Cecil combines multi-methods with a simple classless object model, a kind of...
Whole-program optimization of object-oriented languages (1996)
Craig Chambers, Craig Chambers, Jeffrey Dean, Jeffrey Dean, David Grove, David Grove
We describe Vortex, an optimizing compiler intended to produce high-quality code for programs written in a heavily-object-oriented style. To achieve this end, Vortex includes a number of intra- and...
Vortex: An Optimizing Compiler for Object-Oriented Languages (1996)
Jeffrey Dean, Greg Defouw, David Grove, Vassily Litvinov, Craig Chambers
Previously, techniques such as class hierarchy analysis and profile-guided receiver class prediction have been demonstrated to greatly improve the performance of applications written in pure...
Automatic dynamic compilation support for event dispatching in extensible systems (1996)
Craig Chambers, Susan J. Eggers, Joel Ausl, Matthai Philipose, Markus Mock, Przemyslaw Pardyak
This paper describes extensions to an automatic dynamic compilation framework to support optimized event dispatching in the SPIN extensible operating system. 1
Optimization of Object-Oriented Programs using Static Class Hierarchy Analysis (1995)
Jeffrey Dean, David Grove, Craig Chambers
Abstract. Optimizing compilers for object-oriented languages apply static class analysis and other techniques to try to deduce precise information about the possible classes of the receivers of...
Extensibility, safety and performance in the SPIN operating system (1995)
Brian N. Bershad, Stefan Savage, Przemys Pardyak, Emin Gun Sirer, Marc E. Fiuczynski, David Becker, ...
This paper describes the motivation, architecture and performance of SPIN, an extensible operating system. SPIN provides an extension infrastructure, together with a core set of extensible services,...
Extensibility, safety and performance in the SPIN operating system (1995)
Brian N. Bershad, Stefan Savage, Przemys Pardyak, Emin Gun Sirer, Marc E. Fiuczynski, David Becker, ...
This paper describes the motivation, architecture and performance of SPIN, an extensible operating system. SPIN provides an extension infrastructure, together with a core set of extensible services,...
Optimization of Object-Oriented Programs using Static Class Hierarchy Analysis (1995)
Jeffrey Dean, David Grove, Craig Chambers
Abstract. Optimizing compilers for object-oriented languages apply static class analysis and other techniques to try to deduce precise information about the possible classes of the receivers of...
Extensibility, safety and performance in the SPIN operating system (1995)
Brian N. Bershad, Stefan Savage, Emin Gun Sirer, Marc E. Fiuczynski, David Becker, Craig Chambers, ...
This paper describes the motivation, architecture and performance of SPIN, an extensible operating system. SPIN provides an extension infrastructure, together with a core set of extensible services,...
Extensibility, safety and performance in the SPIN operating system (1995)
Brian N. Bershad, Stefan Savage, Emin Gun Sirer, Marc E. Fiuczynski, David Becker, Craig Chambers, ...
This paper describes the motivation, architecture and performance of SPIN, an extensible operating system. SPIN provides an extension infrastructure, together with a core set of extensible services,...
The Cecil Language Specification and Rationale: Version 2.0 (1995)
ii Cecil is a purely object-oriented language intended to support rapid construction of high-quality, extensible software. Cecil combines multi-methods with a simple classless object model, a kind of...
The Cecil Language - Specification and Rationale - Version 3.0 (1995)
Craig Chambers, The Cecil Group
Cecil is a purely object-oriented language intended to support rapid construction of high-quality, extensible software. Cecil combines multi-methods with a simple classless object model, a kind of...
Specification And Rationale, Craig Chambers
Cecil is a purely object-oriented language intended to support rapid construction of high-quality, extensible software. Cecil combines multi-methods with a simple classless object model, a kind of...
Typechecking and Modules for Multi-Methods (1995)
Craig Chambers, Gary T. Leavens
Two major obstacles hindering the wider acceptance of multi-methods are concerns over the lack of encapsulation and modularity and the absence of static typechecking in existing multi-method-based...
Profile-Guided Receiver Class Prediction (1995)
David Grove, Jeffrey Dean, Charles Garrett, Craig Chambers
The use of dynamically-dispatched procedure calls is a key mechanism for writing extensible and flexible code in object-oriented languages. Unfortunately, dynamic dispatching imposes a runtime...
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis (1995)
Jeffrey Dean, David Grove, Craig Chambers
. Optimizing compilers for object-oriented languages apply static class analysis and other techniques to try to deduce precise information about the possible classes of the receivers of messages; if...
A Framework for Selective Recompilation in the Presence of Complex Intermodule Dependencies (1995)
Craig Chambers, Jeffrey Dean, David Grove
Compilers and other programming environment tools derive information from the source code of programs; derived information includes compiled code, interprocedural summary information, and call graph...
Selective Specialization for Object-Oriented Languages (1995)
Jeffrey Dean, Craig Chambers, David Grove
Dynamic dispatching is a major source of run-time overhead in object-oriented languages, due both to the direct cost of method lookup and to the indirect effect of preventing other optimizations. To...
Extensibility, Safety and Performance in the SPIN Operating System (1995)
Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gün Sirer, Emin Gun Sirer, Marc Fiuczynski, ...
This paper describes the motivation, architecture and performance of SPIN, an extensible operating system. SPIN provides an extension infrastructure together with a core set of extensible services...
Automatic Dynamic Compilation Support for Event Dispatching in Extensible Systems (1995)
Craig Chambers, Susan J. Eggers, Joel Ausl, Matthai Philipose, Markus Mock, Przemyslaw Pardyak
This paper describes extensions to an automatic dynamic compilation framework to support optimized event dispatching in the SPIN extensible operating system. 1 Introduction In several extensible...
Automatic Dynamic Compilation Support for Event Dispatching in Extensible Systems (1995)
Craig Chambers, Susan J. Eggers, Joel Ausl, Matthai Philipose, Markus Mock, Przemyslaw Pardyak
This paper describes extensions to an automatic dynamic compilation framework to support optimized event dispatching in the SPIN extensible operating system. 1 Introduction In several extensible...
Overview of the Cecil/Vortex Project (1995)
method dispatching and static function overloading by allowing method lookup to depend on the dynamic type of any subset of a message's arguments. Consequently, multi-methods are a promising...
Typechecking and Modules for Multi-Methods (1995)
Gary T. Leavens, Craig Chambers, Craig Chambers
Two major obstacles hindering the wider acceptance of multi-methods are concerns over the lack of encapsulation and modularity and the absence of static typechecking in existing multi-method-based...
Profile-Guided Receiver Class Prediction (1995)
David Grove, Jeffrey Dean, Charles Garrett, Craig Chambers
The use of dynamically-dispatched procedure calls is a key mechanism for writing extensible and flexible code in object-oriented languages. Unfortunately, dynamic dispatching imposes a runtime...
A framework for selective recompilation in the presence of complex intermodule dependencies (1995)
Craig Chambers, Jeffrey Dean, David Grove
Compilers and other programming environment tools derive information from the source code of programs; derived information includes compiled code, interprocedural summary information, and call graph...
Optimization of Object-Oriented Programs using Static Class Hierarchy Analysis (1995)
Jeffrey Dean, David Grove, Craig Chambers
Optimizing compilers for object-oriented languages apply static class analysis and other techniques to try to deduce precise information about the possible classes of the receivers of messages; if...
Typechecking and Modules for Multi-Methods (1995)
Craig Chambers, Craig Chambers, Gary T. Leavens, Gary T. Leavens
Two major obstacles hindering the wider acceptance of multi-methods are concerns over the lack of encapsulation and modularity and the absence of static typechecking in existing multi-method-based...
Extensibility, safety and performance in the SPIN operating system (1995)
Brian N. Bershad, Stefan Savage, Przemys Pardyak, Emin Gun Sirer, Marc E. Fiuczynski, David Becker, ...
This paper describes the motivation, architecture and performance of SPIN, an extensible operating system. SPIN provides an extension infrastructure, together with a core set of extensible services,...
Identifying Profitable Specialization in Object-Oriented Languages (1994)
Jeffrey Dean, Craig Chambers, David Grove
The performance of object-oriented languages can be greatly improved if methods can be specialized for particular classes of arguments. Such specialization can provide the compiler with enough class...
SPIN - an extensible microkernel for application-specific operating system services (1994)
Brian N. Bershad, Craig Chambers, Susan Eggers, Chris Maeda, Dylan Mcnamee, Przemyslaw Pardyak, ...
Application domains such as multimedia, databases, and parallel computing, require operating system services with high performance and high functionality. Existing operating systems provide fixed...
Identifying Profitable Specialization in Object-Oriented Languages (1994)
Jeffrey Dean, Craig Chambers, David Grove
The performance of object-oriented languages can be greatly improved if methods can be specialized for particular classes of arguments. Such specialization can provide the compiler with enough class...
Measurement and Application of Dynamic Receiver Class Distributions (1994)
Charles D. Garrett, Charles D. Garrett, Jeffrey Dean, Jeffrey Dean, David Grove, David Grove, ...
Dynamic binding slows down object-oriented programs. Dynamic dispatch mechanisms which work well where all receiver classes are equally likely are too pessimistic because at most call sites one...
Identifying Profitable Specialization in Object-Oriented Languages (1994)
Jeffrey Dean, Craig Chambers, David Grove
The performance of object-oriented languages can be greatly improved if methods can be specialized for particular classes of arguments. Such specialization can provide the compiler with enough class...
Identifying Profitable Specialization in Object-Oriented Languages (1994)
Jeffrey Dean Craig, Jeffrey Dean, Craig Chambers, Craig Chambers, David Grove, David Grove
The performance of object-oriented languages can be greatly improved if methods can be specialized for particular classes of arguments. Such specialization can provide the compiler with enough class...
SPIN - An Extensible Microkernel for Application-specific Operating System Services (1994)
Brian N. Bershad, Craig Chambers, Susan Eggers, Chris Maeda, Dylan McNamee, Przemyslaw Pardyak, ...
Application domains such as multimedia, databases, and parallel computing, require operating system services with high performance and high functionality. Existing operating systems provide fixed...
Type Checking and Modules for Multi-Methods (1994)
Craig Chambers, Gary T. Leavens
Two major obstacles hindering the wider acceptance of multi-methods are concerns over the lack of encapsulation and modularity and the absence of static typechecking in existing multi-method-based...
Identifying Profitable Specialization in Object-Oriented Languages (1994)
Jeffrey Dean Craig, Craig Chambers, David Grove
The performance of object-oriented languages can be greatly improved if methods can be specialized for particular classes of arguments. Such specialization can provide the compiler with enough class...
Identifying Profitable Specialization in Object-Oriented Languages (1994)
Jeffrey Dean Craig, Craig Chambers, David Grove
The performance of object-oriented languages can be greatly improved if methods can be specialized for particular classes of arguments. Such specialization can provide the compiler with enough class...
Type Checking and Modules for Multi-Methods (1994)
Chambers Leavens, Gary T. Leavens, Craig Chambers, Craig Chambers
ing with credit is permitted. To copy otherwise, to republish, to post on servers, or to redistribute to lists, requires prior specific permission and/or a fee. Request permissions from Publications...
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis (1994)
Jeffrey Dean, Jeffrey Dean, David Grove, David Grove, Craig Chambers, Craig Chambers
Optimizing compilers for object-oriented languages apply static class analysis and other techniques to try to deduce precise information about the possible classes of the receivers of messages
SPIN - An Extensible Microkernel for Application-specific Operating System Services (1994)
Brian N. Bershad, Craig Chambers, Susan Eggers, Chris Maeda, Dylan McNamee, Przemyslaw Pardyak, ...
Application domains, such as multimedia, databases, and parallel computing, require operating system services with high performance and high functionality. Existing operating systems provide fixed...
-- An Extensible Microkernel for Application-specific Operating System Services (1994)
Brian Bershad, Craig Chambers, Susan Eggers, Chris Maeda, Dylan Mcnamee, Stefan Savage, ...
Application domains such as multimedia, databases, and parallel computing, require operating system services with high performance and high functionality. Existing operating systems provide fixed...
Towards Safe Modular Extensible Objects (1994)
Chambers Leavens, Cecil Language, Gary T. Leavens, Gary T. Leavens, Craig Chambers, Craig Chambers, ...
We discuss the module system of the Cecil language, which has a flexible means of customizing views of objects. Multi-methods with invocation based on static scoping, a module system, and extension...
Towards Better Inlining Decisions Using Inlining Trials (1994)
Inlining trials are a general mechanism for making better automatic decisions about whether a routine is profitable to inline. Unlike standard source-level inlining heuristics, an inlining trial...
A Framework for Selective Recompilation in the Presence of Complex Intermodule Dependencies (1994)
Craig Chambers, Craig Chambers, Jeffrey Dean, Jeffrey Dean, David Grove, David Grove
Compilers and other programming environment tools derive information from the source code of programs; derived information includes compiled code, interprocedural summary information, and call graph...
Typechecking and Modules for Multi-Methods (1994)
Chambers Leavens, Gary T. Leavens, Craig Chambers, Craig Chambers
Two major obstacles preventing the wider acceptance of multi-methods are concerns over the lack of encapsulation and modularity and the lack of static typechecking in existing multi-method-based...
Abstract SPIN –AnExtensibleMicrokernel for Application-specific Operating System Services (1994)
Brian N. Bershad, Craig Chambers, Susan Eggers, Chris Maeda, Dylan Mcnamee, Przemysław Pardyak, ...
Application domains, such as multimedia, databases, and parallel computing, require operating system services with high performance and high functionality. Existing operating systems provide fixed...
Craig Chambers, Jeffrey Dean, David Grove, Craig Chambers, Jeffrey Dean, David Grove
Compilers and other programming environment tools derive information from the source code of programs; derived information includes compiled code, interprocedural summary information, and call graph...
SPIN - An extensible microkernel for application-specific operating system services (1994)
Brian N. Bershad, Craig Chambers, Susan Eggers, Chris Maeda, Dylan Mcnamee, Przemys Pardyak, ...
Application domains such asmultimedia, databases, and parallel computing, require operating system services with high performance and high functionality. Existing operating systems provide xed...
SPIN - An extensible microkernel for application-specific operating system services (1994)
Brian N. Bershad, Craig Chambers, Susan Eggers, Chris Maeda, Dylan Mcnamee, Przemys Pardyak, ...
Application domains such asmultimedia, databases, and parallel computing, require operating system services with high performance and high functionality. Existing operating systems provide xed...
Training compilers to make better inlining decisions (1993)
Jeffrey Dean, Jeffrey Dean, Craig Chambers, Craig Chambers
Optimizing implementations for object-oriented languages rely on aggressive inlining to achieve good performance. Sometimes the compiler is over-eager in its quest for good performance, however, and...
. Predicate classes are a new linguistic construct designed to complement normal classes in objectoriented languages. Like a normal class, a predicate class has a set of superclasses, methods, and...
The Cecil Language, Specification and Rationale (1993)
Cecil is a new purely object-oriented language intended to support rapid construction of highquality, extensible software. Cecil combines multi-methods with a classless object model, object-based...
Cover title.
Submitted to the Department of Computer Science.
Object-Oriented Multi-Methods in Cecil (1992)
Multiple dispatching provides increased expressive power over single dispatching by guiding method lookup using the values of all arguments instead of only the receiver. However, existing languages...
Object-Oriented Multi-Methods in Cecil (1992)
Multiple dispatching provides increased expressive power over single dispatching by guiding method lookup using the values of all arguments instead of only the receiver. However, existing languages...
Craig Chambers, John Hennessy, Mark Linton
that I have read this dissertation and that in my opinion it is fully
Object-Oriented Multi-Methods in Cecil (1992)
Multiple dispatching provides increased expressive power over single dispatching by guiding method lookup using the values of all arguments instead of only the receiver. However, existing languages...
Object-Oriented Multi-Methods in Cecil (1992)
Multiple dispatching provides increased expressive power over single dispatching by guiding method lookup using the values of all arguments instead of only the receiver. However, existing languages...
Debugging Optimized Code with Dynamic Deoptimization (1992)
Urs Hölzle, Craig Chambers, David Ungar
: SELF's debugging system provides complete source-level debugging (expected behavior) with globally optimized code. It shields the debugger from optimizations performed by the compiler by...
Optimizing dynamically-typed object-oriented languages with polymorphic inline caches (1991)
Craig Chambers, David Ungar, Elgin Lee
Abstract. We have developed and implemented techniques that double the performance of dynamically-typed object-oriented languages. Our SELF implementation runs twice as fast as the fastest Smalltalk...
Optimizing dynamically-typed object-oriented languages with polymorphic inline caches (1991)
Urs Hölzle, Craig Chambers, David Ungar
Abstract: Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message sends by extending inline caches to include more than one cached lookup result per call...
Organizing programs without classes (1991)
David Ungar, Craig Chambers, Bay-wei Chang
Abstract. All organizational functions carried out by classes can be accomplished in a simple and natural way by object inheritance in classless languages, with no need for special mechanisms. A...
Parents are shared parts of objects: Inheritance and encapsulation (1991)
Craig Chambers, David Ungar, Bay-wei Chang
Abstract. The design of inheritance and encapsulation in SELF, an object-oriented language based on prototypes, results from understanding that inheritance allows parents to be shared parts of their...
Parents are shared parts of objects: Inheritance and encapsulation (1991)
Craig Chambers, David Ungar, Bay-wei Chang
Abstract. The design of inheritance and encapsulation in SELF, an object-oriented language based on prototypes, results from understanding that inheritance allows parents to be shared parts of their...
Parents are shared parts of objects: Inheritance and encapsulation (1991)
Craig Chambers, David Ungar, Bay-wei Chang
Abstract. The design of inheritance and encapsulation in SELF, an object-oriented language based on prototypes, results from understanding that inheritance allows parents to be shared parts of their...
Organizing programs without classes (1991)
David Ungar, Craig Chambers, Bay-wei Chang
Abstract. All organizational functions carried out by classes can be accomplished in a simple and natural way by object inheritance in classless languages, with no need for special mechanisms. A...
Optimizing Dynamically-Typed Object-Oriented Languages with Polymorphic Inline Caches (1991)
Urs Hölzle, Craig Chambers, David Ungar
: Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message sends by extending inline caches to include more than one cached lookup result per call site. For a...
Optimizing Dynamically-Typed Object-Oriented Languages With Polymorphic Inline Caches (1991)
Urs Hölzle, Craig Chambers, David Ungar
: Polymorphic inline caches (PICs) provide a new way to reduce the overhead of polymorphic message sends by extending inline caches to include more than one cached lookup result per call site. For a...
Making Pure Object-Oriented Languages Practical (1991)
In the past, object-oriented language designers and programmers have been forced to choose between pure message passing and performance. Last year, our SELF system achieved close to half the speed of...
Organizing Programs Without Classes (1991)
David Ungar, Craig Chambers, Bay-wei Chang
. All organizational functions carried out by classes can be accomplished in a simple and natural way by object inheritance in classless languages, with no need for special mechanisms. A single...
Craig Chambers, David Ungar, Elgin Lee
. We have developed and implemented techniques that double the performance of dynamically-typed object-oriented languages. Our SELF implementation runs twice as fast as the fastest Smalltalk...
Organizing Programs Without Classes (1991)
David Ungar, Craig Chambers, Bay-Wei Chang, Urs Hölzle
. All organizational functions carried out by classes can be accomplished in a simple and natural way by object inheritance in classless languages, with no need for special mechanisms. A single...
Abstract. Object-oriented languages have suffered from poor performance caused by frequent and slow dynamically-bound procedure calls. The best way to speed up a procedure call is to compile it out,...
. Object-oriented languages have suffered from poor performance caused by frequent and slow dynamically-bound procedure calls. The best way to speed up a procedure call is to compile it out, but...
Dynamically-typed object-oriented languages please programmers, but their lack of static type information penalizes performance. Our new implementation tech-niques extract static type information...
DyC: An Expressive Annotation-Directed Dynamic Compiler for C
Brian Grant Markus, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
We present the design of DyC, a dynamic-compilation system for C based on run-time specialization. Directed by a few declarative user annotations that specify the variables and code on which dynamic...
DyC: An Expressive Annotation-Directed Dynamic Compiler for C
Brian Grant Markus, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
We present the design of DyC, a dynamic-compilation system for C based on run-time specialization. Directed by a few declarative user annotations that specify the variables and code on which dynamic...
Annotation-Directed Run-Time Specialization in C
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
We present the design of a dynamic compilation system for C. Directed by a few declarative user annotations specifying where and on what dynamic compilation is to take place, a binding time analysis...
Annotation-Directed Run-Time Specialization in C
Brian Grant, Markus Mock, Matthai Philipose, Craig Chambers, Susan J. Eggers
We present the design of a dynamic compilation system for C. Directed by a few declarative user annotations specifying where and on what dynamic compilation is to take place, a binding time analysis...