Generative programming is a style of computer programming. Its goals are to use higher abstractions, to improve programmer productivity, program accuracy and reliability. It uses automated source code creation via generic classes, templates, aspects, intentions, and code generators. It is often related to code-reuse methods such as object-oriented and component-oriented programming.