“Pluggable Reflection: Decoupling Meta-Interface and Implementation.”
Co-authored with John Vlissides, observes that reflection remains a second-class citizen in current programming models, where it’s assumed to be imperative and tightly bound to its implementation. In contrast, most object-oriented APIs allow interfaces to vary independently of their implementations. Components take this separation a step further by describing unforeseeable attributes—the key to pluggable third-party components. This paper describes how reflection can benefit from a similar evolutionary path. Presented at ICSE ‘03.
“Pluggable AOP: designing aspect mechanisms for third-party composition”
Co-authored with Sergei Kojarski, designs language extensions as third-party plug-and-play component, thus enabling the integration of multiple aspect extensions with the same base language. Presented at OOPSLA ‘05.
“Designing Components versus Objects: A Transformational Approach.”
Co-authored with John Vlissides, explores the component design space as an outgrowth of the object-oriented design space as constrained by the JavaBeans component model. Develops a taxonomy for the component design space and contrasts it with a corresponding taxonomy for objects. Presented at ICSE ‘01.
“Execution Patterns in Object-Oriented Visualization.”
Co-authored with Wim De Pauw, John M. Vlissides, and Mark N. Wegman, describes new visualization techniques for object-oriented programs. Presented at COOTS ‘98.