Content deleted Content added
No edit summary Tags: Reverted Mobile edit Mobile web edit |
|||
(18 intermediate revisions by 13 users not shown) | |||
Line 1:
{{short description|Type of computer programming}}
{{Programming paradigms}}▼
In [[
There has been little agreement on the precise definition of automatic programming, mostly because its meaning has changed over time. [[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]]. Later it referred to translation of [[high-level programming language]]s like [[Fortran]] and [[ALGOL]]. In fact, one of the earliest programs identifiable as a [[compiler]] was called [[Autocode]]. [[David Parnas|Parnas]] concluded that "automatic programming has always been a [[euphemism]] for programming in a higher-level language than was then available to the programmer."<ref>D. L. Parnas. "[https://web.stanford.edu/class/cs99r/readings/parnas1.pdf Software Aspects of Strategic Defense Systems]." ''American Scientist''. November 1985.</ref>
Line 11:
==Generative programming==
'''Generative programming''' and the related term [[Metaprogramming|meta-programming]]<ref>{{cite web
|quote=Generative programming, as a subdomain of meta-programming, describes the practice of writing programs that generate other programs as part of their execution.
|url=https://scala-lms.github.io/tutorials/01_overview.html
Line 30:
|quote=Software that generates application programs from descriptions of the problem rather than by traditional programming. It is at a higher level and easier to use than a high-level programming language such as ...
|url=https://www.pcmag.com/encyclopedia/term/37909/application-generator
|title=Application generator |publisher=PCmag.com}}</ref> or an [[ontology (information science)|ontological]] model such as a template and is accomplished with a [[programming tool]] such as a [[template processor]] or an [[integrated development environment]] (IDE). These tools allow the generation of [[source code]] through any of various means.
Modern programming languages are well supported by tools like [https://www.json4swift.com/ Json4Swift] ([[
Programs that could generate [[COBOL]] code include:
Line 47:
These application generators supported COBOL inserts and overrides.
A [[Macro (computer science)|macro]] processor, such as the [[C preprocessor]], which replaces patterns in source code according to relatively simple rules, is a simple form of source-code generator.
[[Large language model]]s such as [[ChatGPT]] are capable of generating a program's source code from a description of the program given in a natural language.<ref name="ChatGPT can write code">{{Cite web |url=https://www.zdnet.com/article/chatgpt-can-write-code-now-researchers-say-its-good-at-fixing-bugs-too/ |title=ChatGPT can write code. Now researchers say it's good at fixing bugs, too |website=ZDNET |date=January 26, 2023 |first=Liam |last=Tung |access-date=June 22, 2023 |archive-date=February 3, 2023 |archive-url=https://web.archive.org/web/20230203051252/https://www.zdnet.com/article/chatgpt-can-write-code-now-researchers-say-its-good-at-fixing-bugs-too/ |url-status=live}}</ref>
Many [[Relational database system|relational database systems]] provide a function that will export the content of the database as [[SQL]] [[Data definition language|data definition]] queries, which may then be executed to re-import the tables and their data, or migrate them to another RDBMS.
==Low-code applications==
Line 59 ⟶ 63:
* [[Comparison of code generation tools]]
* [[Feature-oriented programming]]
* [[GitHub Copilot]]
* [[AI-assisted software development]]
* [[Language-oriented programming]]
* [[Modeling language]]
Line 66 ⟶ 72:
* [[Fourth-generation programming language]]
* [[Low-code development platform]]s
* [[Emergent Coding]]
==Notes==
Line 76 ⟶ 83:
* [http://www.methodsandtools.com/archive/archive.php?id=86 Code Generation for Dummies]
▲{{Programming paradigms navbox}}
{{Authority control}}
|