Abstraction
Avoid requiring something to be stated more than once; factor out the recurring pattern
- Procedures and functions, modules and classes, macros, etc.
FORTRAN I (in the 1950s) did not include subprograms in its preliminary description
- Libraries (for I/O and math) but not user- defined subprograms
The original and central use of subprograms was to save memory