ComputingComputer ScienceCompilersProgramming LanguagesSoftware EngineeringCompiler ConstructionComponent-based Software EngineeringObject-oriented ProgrammingSoftware ConstructionType CheckingType SystemsDynamic Type CheckingLinkingModular AdditionRuntime Type CheckingSeparate CompilationSeparate Compilation SupportStatic Type Checking
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 becuase 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.
13
Gilad Bracha, William R. Cook · 1990 · 811 citations
Engineering, Systems Engineering, Knowledge Representation +13
William Harrison, Harold Ossher · 1993 · 651 citations · Full text
Dynamic class loading in the Java virtual machine
Gilad Bracha · 1998 · 385 citations · Full text
Curtis Clifton, Gary T. Leavens, Craig Chambers et al. · 2000 · 283 citations · Full text
Using role components in implement collaboration-based designs
Michael VanHilst, David Notkin · 1996 · 258 citations · Full text
Computing, Computer Science, Design +17