# 编译期与运行期（Compile Time and Run Time）

### 缩写：无

### 简述

程序生命周期中的两个常见阶段：编译期（或静态分析/转译期）在执行前根据源码做检查与变换；运行期在真实输入与环境下执行逻辑。错误发现得越早成本通常越低；能放在编译期的约束（类型、部分不变式）可减少整类运行时故障。阶段划分因解释型、JIT 等模型而模糊，但仍是有用的分析坐标。

### 使用场景

解释类型错误出现时机、条件编译、特性开关、性能上的静态分派 vs 动态分派。

### 组成与要点

```mermaid
flowchart LR
  源码 --> 编译期检查与变换 --> 产物
  产物 --> 运行期执行
```
### 实践与应用

• 能静态保证的尽量静态保证。
• 运行期校验用于外部输入与动态边界。
• 明确「构建期生成」的代码归属与可调试性。

### 注意事项

• 过度神话编译期：仍需测试与监控。
• 反射与动态加载会绕过部分静态保证。
• JIT 使「编译」发生在运行中，观测更复杂。

### 关联术语

• 编译器：编译期工作的典型执行者
• 类型系统：大量检查可落在编译期
• 运行时：运行期行为的承载
• 静态分析：不执行（或不全量执行）时的检查
