David Parnas, tracing the history of "automatic programming" in published research, noted that in the 1940s it described automation of the manual process of punching paper tape.
Mildred Koss, an early UNIVAC programmer, explains: "Writing machine code involved several tedious steps—breaking down a process into discrete instructions, assigning specific memory locations to all the commands, and managing the I/O buffers.
As we programmed, we examined the process and tried to think of ways to abstract these steps to incorporate them into higher-level language.
"[3] Generative programming and the related term meta-programming[4] are concepts whereby programs can be written "to manufacture software components in an automated way"[5] just as automation has improved "production of traditional commodities such as garments, automobiles, chemicals, and electronics.
Source-code generation is the process of generating source code based on a description of the problem[9] or an ontological model such as a template and is accomplished with a programming tool such as a template processor or an integrated development environment (IDE).