Share on Facebook Tweet on Twitter Share on LinkedIn Share by email
Jiazzi: New-Age Components for Old-Fashioned Java

Sean McDirmid, Matthew Flatt, and Wilson C. Hsieh

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 becuase 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.

Details

Publication typeInproceedings
Published inOOPSLA
PublisherACM SIGPLAN
> Publications > Jiazzi: New-Age Components for Old-Fashioned Java