编译期与运行期(Compile Time and Run Time)
缩写:无
简述
程序生命周期中的两个常见阶段:编译期(或静态分析/转译期)在执行前根据源码做检查与变换;运行期在真实输入与环境下执行逻辑。错误发现得越早成本通常越低;能放在编译期的约束(类型、部分不变式)可减少整类运行时故障。阶段划分因解释型、JIT 等模型而模糊,但仍是有用的分析坐标。
使用场景
解释类型错误出现时机、条件编译、特性开关、性能上的静态分派 vs 动态分派。
组成与要点
flowchart LR
源码 --> 编译期检查与变换 --> 产物
产物 --> 运行期执行
flowchart LR 源码 --> 编译期检查与变换 --> 产物 产物 --> 运行期执行
实践与应用
• 能静态保证的尽量静态保证。
• 运行期校验用于外部输入与动态边界。
• 明确「构建期生成」的代码归属与可调试性。
注意事项
• 过度神话编译期:仍需测试与监控。
• 反射与动态加载会绕过部分静态保证。
• JIT 使「编译」发生在运行中,观测更复杂。
关联术语
• 编译器:编译期工作的典型执行者
• 类型系统:大量检查可落在编译期
• 运行时:运行期行为的承载
• 静态分析:不执行(或不全量执行)时的检查