REWERSE-DEL-2004-I3-D1

Ilie Savga, Charlie Abela, Uwe Assmann:
Ilie Savga (editor):
Report on the design of component model and composition technology for the Datalog and Prolog variants of the REWERSE languages.


Complete Text [
.pdf, 429KB]
In: (I3-D1)

Abstract
This design report outlines the elements of a component model for the REWERSE languages. Instead of defining a special component model for each and every language explicitly, we propose a novel concept to derive a component model from a definition of a language, i.e., from its metamodel. The component models will be used together with invasive software composition [Aßmann03], and can thus be employed for generic programming, connector-based programming, view-based programming, and aspect-oriented programming. So far, invasive software composition has been developed for Java and has used Java-based component models. In this paper, we discuss the application of this technology for arbitrary languages and ask the question whether it is possible to derive an invasive component model from a given language. To this end, we present two proposals. The first will show that, in principle, every language construct can be generic (generic construct principle), that is, it is possible to define an isomorphic mapping from each language construct to the generic elements of its component model. By generalizing this principle to other languages, we can derive a component model by an isomorphic mapping of the language s metamodel. In our second proposal we will show that it is possible to define semantics for extensibility of components by introducing the notion of list-like language constructs. Thus, it is possible to derive from any given language a component model, which is generic and extensible, and which can thus be used for both generic programming and view-based programming. Once applied to the area of the languages used on the Web, this methodology gives a uniform approach to the composition of ontology languages and Web resources.

URL:
http://rewerse.net/publications/rewerse-publications.html#REWERSE-DEL-2004-I3-D1

BibTeX:

@deliverable{REWERSE-DEL-2004-I3-D1,
	url = {http://rewerse.net/publications/rewerse-publications.html#REWERSE-DEL-2004-I3-D1}
}