• Publications
  • Influence
Optimization of Object-Oriented Programs Using Static Class Hierarchy Analysis
TLDR
This paper presents class hierarchy analysis and describes techniques for implementing this analysis effectively in both statically- and dynamically-typed languages and also in the presence of multi-methods and assesses the bottom-line performance improvement due to class hierarchyAnalysis alone and in combination with two other "competing" optimizations, profile-guided receiver class prediction and method specialization. Expand
Extensibility safety and performance in the SPIN operating system
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,Expand
The Dataflow Model: A Practical Approach to Balancing Correctness, Latency, and Cost in Massive-Scale, Unbounded, Out-of-Order Data Processing
TLDR
One such approach is presented, the Dataflow Model, along with a detailed examination of the semantics it enables, an overview of the core principles that guided its design, and a validation of the model itself via the real-world experiences that led to its development. Expand
Alias annotations for program understanding
TLDR
AliasJava is presented, a capability-based alias annotation system for Java that makes alias patterns explicit in the source code, enabling developers to reason more effectively about the interactions in a complex system. Expand
FlumeJava: easy, efficient data-parallel pipelines
TLDR
The combination of high-level abstractions for parallel data and computation, deferred evaluation and optimization, and efficient parallel primitives yields an easy-to-use system that approaches the efficiency of hand-optimized pipelines. Expand
ArchJava: connecting software architecture to implementation
Software architecture describes the structure of a system, enabling more effective design, program understanding, and formal analysis. However, existing approaches decouple implementation code fromExpand
Ownership Domains: Separating Aliasing Policy from Mechanism
TLDR
This paper proposes an ownership type system that is too weak to express many important aliasing constraints, yet also so restrictive that they prohibit many useful programming idioms. Expand
MultiJava: modular open classes and symmetric multiple dispatch for Java
TLDR
MultiJava is presented, a backward-compatible extension to Java supporting open classes and symmetric multiple dispatch, and adapt previous theoretical work to allow compilation units to be statically typechecked modularly and safely, ruling out any link-time or run-time type errors. Expand
Object-Oriented Multi-Methods in Cecil
TLDR
This work proposes an alternative view of multiple dispatching that is intended to promote a data-abstraction-oriented programming style, and explores this object-oriented view of multi-methods in the context of a new programming language named Cecil. Expand
ArchJava: connecting software architecture to implementation
TLDR
A case study applying ArchJava to a circuit-design application suggests that ArchJava can express architectural structure effectively within an implementation, and that it can aid in program understanding and software evolution. Expand
...
1
2
3
4
5
...