Program: Difference between revisions

From Computer History Wiki
Jump to navigationJump to search
Configurability is not programmability
Get rid of a window on my laptop by improving this!
 
Line 1: Line 1:
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''' (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:


A program will include:
* [[expression]]s to perform arithmetical and/or logical computations
* directives to move data from one place to another
* [[control flow]] mandates, including [[conditional branch]]es and [[subroutine]] calls
 
A program almost always exists in two complementary forms:
 
* as [[object code]] (often referred to as 'binary'), a collection of [[instruction]]s loaded into the [[main memory]] of the [[computer]], from where the [[Central Processing Unit|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.


* [[expression]]s to perform arithmetical and/or logical computations
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 [[assembly language|assembler]]s and [[compiler]]s.
* direction to move data from one place to another
* [[control flow]] directives, including [[conditional branch]]es and [[subroutine]] calls


Programs will be converted from their original human-readable [[source code]] to [[object code]] (by tools such as [[assembly language|assembler]]s and [[compiler]]s), and loaded into the [[main memory]] of the computer, from where the [[Central Processing Unit|CPU]] will fetch the individual [[instruction]]s of the program, and execute them.
==Early programs==


In the context of early [[computing device]]s, 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-board]]s of the [[ENIAC]]. Such 'customizability' is better referred to as 'configurability', and ''not'' 'programmability'.
In the context of early [[computing device]]s, 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-board]]s of the [[ENIAC]]. Such 'customizability' is better referred to as 'configurability', and ''not'' 'programmability'.


{{semi-stub}}
{{semi-stub}}


[[Category: Basics‎]]
[[Category: Basics]]

Latest revision as of 10:02, 2 September 2026

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:

A program almost always exists in two complementary forms:

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'.