Articles by others on the same topic
A computer program specifies operations or constraints that an implementation can execute or interpret. Its representation can be source code, bytecode or machine code; the same intended computation can have several computer program representations. Its behavior depends on the language semantics, input and execution environment.
For example, a source expression adding two variables is not yet one fixed result. A compiler can translate it into lower-level operations, while an interpreter or CPU performs those operations for particular values. Calling a library or reading a file makes additional parts of the environment relevant. A computer program is consequently distinct from its one observed execution trace and from the abstract algorithm it implements: two programs can implement the same algorithm with different representations, error behavior or resource costs.