Readablewiki

Automatic programming

Content sourced from Wikipedia, licensed under CC BY-SA 3.0.

Automatic programming is the idea of making programs that help create other programs, so humans can work at a higher level. The meaning has changed over time. In the 1940s it meant automating the manual tasks of punching tape. Later it referred to translating programs written in one language into another. One early recognizable compiler was called Autocode. As David Parnas pointed out, “automatic programming” has often meant programming in a higher-level language than was available at the time.

Program synthesis is a type of automatic programming where a program is built from scratch based on mathematical requirements.

Mildred Koss, an early UNIVAC programmer, explained how programmers moved from breaking tasks into tiny machine steps to thinking about reusable code and higher-level tools. This shift helped lead to interpreters, assemblers, compilers, and generators—programs that can operate on or create other programs.

Generative programming and meta-programming are ideas where programs automatically create software components, similar to how automation helps produce other goods. The goal is to boost programmer productivity and support code reuse and component-based software engineering.

Source-code generation is the process of turning a description or model into source code, using template processors or integrated development environments (IDEs). Modern languages have helpers that turn data into code, such as Json4Swift for Swift and Json2Kotlin for Kotlin.

Examples include programs that generate COBOL code, macro processors like the C preprocessor, and other source-to-source generation tools. Large language models (like ChatGPT) can generate code from natural-language descriptions.

Databases can export data as SQL definitions to migrate to another system. Some languages use annotations to generate code (Java and Kotlin with Lombok, for instance). There are ideas to add compile-time token injection in C++. Finally, low-code development platforms let people build applications through graphical interfaces and configuration rather than traditional programming.


This page was last edited on 3 February 2026, at 18:57 (CET).