Program
A running instance of code on a machine: execution plus memory, state, and interaction with the OS and environment.
Definition
A program is code in motion: a running instance that the machine is actively executing, with memory, state, and live interaction with its surroundings.
Program vs binary vs executable
- A binary is a file.
- An executable is a binary that can be started.
- A program is what exists after it has been started and is actually running.
This distinction matters because disk artifacts and running execution have different failure modes, observability, and operational controls.
Synonyms and related terms
- Related: process (OS-managed running instance), instance, workload
- Neighbor concepts: runtime, runtime environment
What changes when it becomes “running”
When a program starts, the OS loads the executable into memory and begins executing machine instructions on the CPU.
From that point on, behavior depends not only on the code, but also on the runtime environment: config, network access, filesystem, permissions, and so on.
Where runtimes and interpreters fit
A program can be:
- a native executable running directly on the OS
- an interpreter process (the interpreter is a program) executing source code or bytecode
- a managed-runtime process (e.g., a VM) that may do JIT compilation during execution
In all cases, the key idea is the same: “program” refers to the running instance, not the file on disk.
A useful analogy
If an executable is sheet music, the program is the performance: it exists in time, it can speed up or slow down, it can make mistakes, it can be interrupted, and it depends on the venue and the musicians (runtime + environment) as much as the notes.