Program
A program (the term is a shortened form of the full, original term - stored program) is the collection of steps needed to accomplish a particular information-handling goal. A program will include:
- expressions to perform arithmetical and/or logical computations
- directives to move data from one place to another
- control flow mandates, including conditional branches and subroutine calls
A program almost always exists in two complementary forms:
- as object code (often referred to as 'binary'), a collection of instructions loaded into the main memory of the computer, from where the CPU will fetch the individual instructions of the program, and execute them;
- the source code; the expression, in either assembly language or a higher-level programming language (forms more suited for humans to humans to work with), of the steps in the program.
Programs, almost all originally created in the latter form, are converted from their original human-readable source code, to the object code form needed by an actual computer, by tools such as assemblers and compilers.
Early programs
In the context of early computing devices, it must be emphasized that a program was a specified series of elementary steps, which were stored in some mechanism from which they were fed into the device; not simply the ability to make physical changes to the device, to change what calculation it performs - even if those changes were instantiated in something that was added to the device for the accomplishment of that exact purpose, like the plug-boards of the ENIAC. Such 'customizability' is better referred to as 'configurability', and not 'programmability'.