Aspect-Oriented Programming in Jiazzi. Sean McDirmid and Wilson Hsieh. In the proceedings of AOSD 2003. [more info][pdf] (12 pages). Jiazzi 3 implements Jiazzi as specified in this paper.

Jiazzi: New Age Components for Old Fashioned Java. Sean McDirmid, Matthew Flatt, and Wilson Hsieh. In the proceedings of OOPSLA 2001. [more info][ps.gz][pdf] (12 pages)

Mixin COP and OOP. Sean McDirmid, Matthew Flatt, and Wilson Hsieh. In the proceedings of the first workshop on Component Languages, OOPSLA 2001. [more info][ps.gz][pdf] (4 pages)

Java Component Development in Jiazzi. Sean McDirmid, Matthew Flatt, and Wilson Hsieh. Extended Abstract (poster abstract). [pdf] (2 pages)

And of course we have Documentation for our implementation.

Aspect-Oriented Programming in Jiazzi

Sean McDirmid and Wilson Hsieh

University of Utah, School of Computing

 

Abstract

We present aspect-oriented programming in Jiazzi. Jiazzi enhances Java with separately compiled, externally linked code modules called units. Units can act as effective "aspect" constructs with the ability to separate crosscutting concern code in a
non-invasive and safe way. Unit linking provides a convenient way for programmers to explicitly control the inclusion and configuration of code that implements a concern, while separate compilation of units enhances the independent development and deployment of the concern. The expressiveness of concern separation is enhanced by units in two ways. First, classes can be made open to the addition of new behavior, fields, and methods after they are initially defined, which enables the direct modularization of concerns whose code crosscut object boundaries. Second, the signatures of methods and classes can also be made open to refinement, which permits more aggressive modularization by isolating the naming and calling requirements of a concern implementation.


To appear in the AOSD 2003.

Download the paper: [pdf].

Jiazzi: New Age Components for Old Fashioned Java

Sean McDirmid, Matthew Flatt, and Wilson Hsieh

University of Utah, School of Computing


Abstract

We present Jiazzi, a system that enables the construction of large-scale binary components in Java. Jiazzi components can be thought of as generalizations of Java packages with added support for external linking and separate compilation. Jiazzi components are practical because they are constructed out of standard Java source code. Jiazzi requires neither extensions to the Java language nor special conventions for writing Java source code that will go inside a component. Our components are expressive because Jiazzi supports cyclic component linking and mixins, which are used together in an open class pattern that enables the modular addition of new features to existing classes. This paper describes Jiazzi, how it enhances Java with components, its implementation, and how type checking works. An implementation of Jiazzi is available for download.


In the Proceedings of the ACM Conference on Object-Oriented Programming, Systems, Languages, and Applications (OOPSLA) 2001.

Download the paper: [ps.gz][pdf].


Mixing COP and OOP

Sean McDirmid, Matthew Flatt, and Wilson Hsieh

University of Utah, School of Computing


Summary

In this short position paper, we describe and justify thirteen technical properties that a component system must possess to work with object-oriented programming languages (such as Java, C++, or C#). Our components are designed for large-scale, modular construction of programs with static checking of program compositions.

Jiazzi, our enhancement of Java, implements the technical properties that we describe. We use Jiazzi components in our examples, but only to make the discussion more concrete. Readers interested in the details of the Jiazzi component system should refer to Jiazzi: New Age Components for Old Fashioned Java.

 

In the Proceedings of the the first Workshop on Component Languages, OOPSLA 2001.

Download the paper: [ps.gz][pdf].