A plan of action that is to be executed by an executor, usually an automatic device, most often a computer; instructions for an algorithm. A program consists of a finite set of commands (instructions), each of which makes the executor execute a certain elementary operation over the data, which are stored in the memory of the executor and whose names are parameters of the commands. The automatism of the executor is achieved by the fact that every current command, except the stop command, points uniquely to a command in the program that is to be executed after the current one. A special feature of the executor is the presence of branching commands (conditional transitions), in which the choice of one out of several indicated actions is made on the basis of checking properties of the data mentioned in the command. Another feature is the possibility of executing distinct commands at the same time. These features lead to the fact that when using a program the sequence of commands to be executed and its length may vary, after having uniquely defined the data. Thus, a program, while being a finite object, impels the user to react regularly on a potentially infinite variety of data. Hence, programs, like theorems and their proofs, realize a property of the universality of mathematical regularities.
Mathematical abstractions of programs are studied in theoretical programming. Programs are important not only as prescriptions for computers, but also as sources of operational knowledge of men. Hence algorithmic languages (cf. Algorithmic language), created for writing down programs, also have the communicative function characteristic of natural languages.
Developing programs for computers, or programming, has become a vast branch of mathematical practice in view of the wide application of computers.
[1] | A.P. Ershov, "Human and aesthetic factors in programming" Cybernetics , 8 : 5 (1972) pp. 809–813 Kibernetika , 8 : 5 (1972) pp. 95–99 |
[2] | W.M. Turski, "Methodology of programming" , Moscow (1981) (In Russian) |