A program is a sequence of instructions that speciﬁes how to perform a computation. The computation might be something mathematical, such as solving a system of equations or ﬁnding the roots of a polynomial, but it can also be a symbolic computation, such as search ing and replacing text in a document or (strangely enough) compiling a program.
The details look different in different languages, but a few basic instructions appear in just about every language:
input: Get data from the keyboard, a ﬁle, or some other device.
output: Display data on the screen or send data to a ﬁle or other device.
math: Perform basic mathematical operations like addition and multiplication.
conditional execution: Check for certain conditions and execute the appropriate code.
repetition: Perform some action repeatedly, usually with some variation.
Believe it or not, that’s pretty much all there is to it. Every program you’ve ever used, no matter how complicated, is made up of instructions that look pretty much like these. So you can think of programming as the process of breaking a large, complex task into smaller and smaller subtasks until the subtasks are simple enough to be performed with one of these basic instructions.
That may be a little vague, but we will come back to this topic when we talk about algorithms.