In computer science, the term automatic programming[1] identifies a type of computer programming in which some mechanism generates a computer program to allow human programmers 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.
自动编程的具体定义现在还没有达成一致,这主要是因为它的含义一直以来都在变化。David Parnas在他已发表的研究中追溯“自动编程”的历史,他指出在1940年代,“自动编程”指的是在纸带上打孔这一道工序的自动化。
Later it referred to translation of high-level programming languages like Fortran and ALGOL. In fact, one of the earliest programs identifiable as a compiler was called Autocode. Parnas concluded that "automatic programming has always been a euphemism for programming in a higher-level language than was then available to the programmer."
后来,“自动编程” 指的是对一些高级编程语言(像Fortran和ALGOL)的翻译。事实上,最早能被认定为编译器的程序叫做Autocode. Parnas 总结说“自动编程”一般是高级语言的编程的委婉说法而不是对于编程者来说的。
Program synthesis is one type of automatic programming where a procedure is created from scratch, based on mathematical requirements.
程序综合也是一种自动编程,基于一些数学要求,步骤由scratch产生。