Automatic programming

From Encyclopedia of Mathematics
Jump to: navigation, search

The use of computers to produce computer programs (cf. Program) automatically from some initial description which is closer to the original formulation of the problem. The meaning of "automatic programming" has shifted in time, reflecting the general evolution of human-computer communication and of programming methods. Originally, automatic programming consisted in leaving it to the computer to produce a translation into machine code of the description of an algorithm for solving some problem, expressed in some algorithmic language. Subsequently, automatic programming was understood to include a method for the directed synthesis of an algorithm from a compact problem description, restricted to some fixed class of problems. At present (the 1970s) the concept of automatic programming is being extended to cover a comprehensive procedure for the synthesis of an algorithm in the framework of a much wider language for formulating problems, not limited to a specific class. Such a synthesis entails a correctness proof for the algorithm and employs formal approaches such as various models for the semantics of natural languages, predicate calculus and theorem-proving techniques.



[a1] R. Balzer, "A 15-year perspective on automatic programming" IEEE Trans. Software Engineering , 11 : 11 (1985) pp. 1257–1267 (Special issue on artificial intelligence and software engineering, Guest Ed.: J. Mostow)
How to Cite This Entry:
Automatic programming. A.P. Ershov (originator), Encyclopedia of Mathematics. URL:
This text originally appeared in Encyclopedia of Mathematics - ISBN 1402006098