Meta Programming
Wikipedia: DSL (Domain Specific Language)
Martin Fowler about DSL
MPS project (Meta Programming System)
Refactoring Patterns
codegeneration.net