Automated Programming Task: Difference between revisions

From GM-RKB
Jump to navigation Jump to search
No edit summary
Tag: New redirect
 
Line 1: Line 1:
An [[Automated Programming Task]] is a [[software programming task]] that is an [[automated task]].
#REDIRECT [[Automated Software Code Creation Task]]
* <B>Context:</B>
** [[Task Input|input]]: a [[High-Level System Specification]].
** It can (typically) be a [[Human-level Intelligence Task]].
** It can (typically) be solved by an [[Automated Programming System]].
** It can include: [[Automated Debugging]], [[Automated Code Refactoring]], [[Automated Test Generation]], [[Automated Documentation Generation]].
** It can range from being a [[Semi-Automated Programming Task]] to being a [[Fully-Automated Programming Task]].
** It can range from being a [[Simple Automated Programming Task]] to being a [[Complex Automated Programming Task]].
** …
* <B>Example(s):</B>
** [[Automated Software Code Creation Task|Auto-Write]] three [[software function]]s that compute the sum of the numbers in a given list using a for-loop, a while-loop, and recursion.
** [[Automated Software Code Creation Task|Auto-Write]] a [[software function]] that combines two lists by alternatingly taking elements. For example: given the two lists [a, b, c] and [1, 2, 3], the function should return [a, 1, b, 2, c, 3].
** [[Automated Software Code Creation Task|Auto-Write]] a [[software function]] that computes the list of the first [[100]] [[Fibonacci numbers]].
** [[Automated Software Code Creation Task|Auto-Write]] a [[software function]] that, given a list of [[non negative integers]], arranges them such that they form the [[largest possible number]]. For example, given [50, 2, 1, 9], the largest formed number is 95021.
** [[Automated Software Code Creation Task|Auto-Write]] a [[mathematical program]] that outputs all possibilities to put + or - or nothing between the numbers 1, 2, ..., 9 (in this order) such that the result is always 100. For example: 1 + 2 + 34 – 5 + 67 – 8 + 9 = 100.
** An [[Automated Software Code Creation Task|Auto-Write]] in a [[software coding contest]].
** …
* <B>Counter-Example(s):</B>
** [[Manual Programming]], using a [[high-level programming language]]
* <B>See:</B> [[Self-Programming Task]], [[Automated System Recovery]], [[Program Synthesis]], [[High-Level Programming Language]], [[Software Automation]], [[Code Generation]], [[Software Development Project]].
 
----
----
 
== References ==
 
=== 2023 ===
* (Wikipedia, 2023) ⇒ https://en.wikipedia.org/wiki/Automatic_programming Retrieved:2023-12-30.
** In [[computer science]], '''automatic programming''' <ref> Ricardo Aler Mur, "[http://www.evannai.inf.uc3m.es/et/icml06/aiptutorial.htm Automatic Inductive Programming] ", ''ICML 2006 Tutorial''. June 2006. </ref> is a type of [[computer programming]] in which some mechanism generates a [[computer program]] to allow human [[programmer]]s to write the code at a higher abstraction level. 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> <P> [[Program synthesis]] is one type of automatic programming where a procedure is created from scratch, based on mathematical requirements.
<references/>
** NOTES:
*** Definition and Evolution: Automatic programming in computer science is a method where a mechanism generates a program, enabling programmers to code at a higher abstraction level. The term's meaning has changed over time, initially relating to the automation of manual processes like punching paper tape, and later involving the translation of high-level programming languages.
*** [[Software Program Synthesis]]: This involves creating [[software procedure]]s from scratch based on [[mathematical requirement]]s.
*** [[Generative Software Programming]]: Programs are written to automatically manufacture [[software component]]s, with a focus on enhancing programmer productivity and [[code reuse]].
*** [[Source-Code Generation]]: Generating [[source code]] from a [[problem description]] or a [[model]] using tools like [[template processor]]s or [[integrated development environment|IDE]]s.
*** [[Low-Code Development Platform]]s: [[Software]] that allows programmers to create [[application software]] through [[graphical user interface]]s and [[configuration]], reducing the need for traditional programming.
 
----
[[Category:Concept]]
__NOTOC__

Latest revision as of 04:10, 30 December 2023