We describe generative programming, an approach to generating customized programming components or systems, and active libraries, which are based on this approach. In contrast to conventional libraries, active libraries may contain metaprograms that
implement domain-specific code generation, optimizations, debugging, profiling and testing. Several working examples (Blitz++,
GMCL, Xroma) are presented to illustrate the potential of active libraries. We discuss relevant implementation technologies.