Program
A program is the expression, in either assembly language or a higher-level programming language, of the steps needed to accomplish a particular computational goal.
A program will include:
- expressions to perform arithmetical and/or logical computations
- direction to move data from one place to another
- control flow directives, including conditional branches and subroutine calls
Programs will be converted from their original human-readable source code to object code (by tools such as assemblers and compilers), and loaded into the main memory of the computer, from where the CPU will fetch the individual instructions of the program, and execute them.
In the context of early computing devices, it must be emphasized that a program is a specified series of elementary steps, which are stored in some mechanism from which they are 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 are instantiated in something that was added to the device for that exact purpose, like the plug-boards of the ENIAC. Such 'customizability' is better referred to as 'configurability', and not 'programmability'.