Prev Up Next
Go backward to Generic Programming in C++: Matrix Case Study
Krzysztof Czarnecki

Go up to Programming Methodology
Go forward to Generic Programming Using Adaptive and
Aspect-Oriented Programming
Karl Lieberherr


Generative Programming: Beyond Generic Programming
Ulrich Eisenecker

Most of the current object-oriented analysis and design methodologies focus on developing single systems only. Little support is provided for developing reusable software, e.g. frameworks or component libraries. Furthermore, when we increase the generality of reusable software implemented using conventional technology (e.g. framework and component technology), its complexity grows more than required and it also suffers unnecessary performance losses. Generative programming addresses these three problems. First, it deploys Domain Engineering, which allows us to model classes of systems rather than single systems. Second, aspect-oriented decomposition and composition techniques, domain-specific languages, and configuration knowledge are used to increase the intentionality of system representation and reduce unnecessary complexity. Third, generative programming techniques (e.g. generators, dynamic metaprogramming, and reflection) are used to implement the above concepts and to achieve high performance. This talk presents some generative C++ techniques allowing for parameterization of method binding time and implementation of statically configurable frameworks with statically bound methods and no overhead in time and space incurred by unused polymorphic functionality as in dynamic frameworks.


 

Prev Up Next