Generative programming methods, tools, and applications - Czarnecki, Krzysztof (Addison-Wesley, 2002)