Pnambic Logo
Compositional Program Synthesis
Hyper/J Tools
The FrankenSort Experiment
Related Work
The notion behind compostional program synthesis is that software development is best described as the process of adding capabilities to an existing structure. The goal is to reduce software development costs by treating software modules as incremental, evolutionary enhancements. A successful CPS effort requires a library of composable elements and a coherent set of composition rules.
Hyper/J Tools
One of the key tasks for Hyper/J composition is the specification of a universe of composition. Unlike simpler composition tools (e.g. a linker), each composable unit can be associated with multiple properties. Although these properties are organized into a concern hyperspace, it is still a much richer specification then the LIBPATH environment variable that is used by many linkers. These Hyper/J tools are an early attempt to automate the specification of the universe of composition.
The Frankensort Experiment
The FrankenSort experiment is a early investigation into the use of Compositional Program Synthesis for real-world applications. In this experiment, the POSIX sort applications is being rewritten with Hyper/J. The original version (sort.c from the GNU Project) is being re-implemented as a set of composable, evolutionary components. The early work demonstrated the large number of evolutionary enhancements that are present in a real-world application. The more recent synthesis work has demonstrated that most interactions can be categorized with a limited vocabulary of behaviors. Further details are available at the FrankenSort web-page.
Related Work
Sevaral software engineering research groups that are developing tools and mechanisms that support various approach of compositional program synthesis. The related work page provides summary descriptions of several known projects. Most of these research groups are active participants in the Aspect Oriented Software Development community. A large list of Aspect Oriented tools is also available.
Copyright 1999, 2002 Pnambic Computing Page design by Pnambic Computing.