Language-Independent and Automated Software Composition: The FEATUREHOUSE Experience
Superimposition is a composition technique that has been applied successfully in many areas of software development. Although superimposition is a general-purpose concept, it has been (re)invented and implemented individually for various kinds of software artifacts. The authors unify languages and tools that rely on superimposition by using the language-independent model of Feature Structure Trees (FSTs). On the basis of the FST model, they propose a general approach to the composition of software artifacts written in different languages. Furthermore, they offer a supporting framework and tool chain, called FEATUREHOUSE. They use attribute grammars to automate the integration of additional languages. In particular, they have integrated Java, C#, C, Haskell, Alloy, and JavaCC.