# 程序（Program）

### 缩写：无

### 简述

按某种编程语言规则编写、可被计算机执行以完成既定任务的指令与数据集合。程序是「要解决的问题」在机器上的可执行表达；源码、字节码、机器码是其不同形态，运行时还依赖操作系统与运行环境。

### 为何出现

计算需要可重复、可传递的操作步骤。没有明确程序，人只能手工操作机器，无法规模化自动化。

### 使用场景

编写业务逻辑、脚本工具、服务进程、嵌入式固件；讨论「交付物是什么」时与配置、数据文件区分。

### 组成与要点

```mermaid
flowchart LR
  源码 --> 构建产物 --> 运行实例
```
### 实践与应用

• 划清程序边界：哪些是代码职责，哪些是配置/基础设施。
• 变更程序时同步考虑兼容的输入输出与部署单元。
• 用版本管理把程序变更与发布对应起来。

### 注意事项

• 程序正确 ≠ 业务正确：需求理解偏差仍会「按错误规格完美执行」。
• 依赖环境：同一程序在不同运行时/OS 行为可能不同。
• 与「项目」「仓库」区分：仓库可含多程序、文档与配置。

### 对比与易混

• 脚本：常指较短、多解释执行的程序形态，不是对立概念。
• 进程：程序的一次运行实例。
• 算法：解题步骤的抽象，程序是其在语言中的实现。

### 关联术语

• 源代码：人类可读的程序文本形态
• 进程：程序的一次运行实例
• 算法：解题步骤，由程序实现
• 运行时：程序执行所依赖的环境
• 编程语言：书写程序所用的形式规则
