语义(Semantics)
缩写:无
简述
编程语言中关于「合法程序表示什么、执行产生什么效果」的规则与约定。相对语法的「形」,语义是「义」:求值顺序、作用域规则、类型含义、内存与副作用、错误如何产生等。理解语义才能预测行为、做正确重构与并发推理。
使用场景
解释「为什么这样运行」、语言对比、形式化规范、排查与直觉不符的边角行为。
实践与应用
• 对关键路径查语言规范或权威参考中的求值与绑定规则。
• 重构时保持可观察语义(或有意识地改变并测全)。
• 跨语言移植时逐项核对相等、数值、字符串、异步语义。
注意事项
• 未定义行为/实现定义行为(某些语言)会导致「看似能跑、换平台炸」。
• 优化不得擅自改变规定语义。
• 文档示例的简化语义可能忽略错误路径。
对比与易混
| 语义 | 语法 | |
|---|---|---|
| 焦点 | 含义与效果 | 记号如何拼 |
| 例子 | 短路求值、作用域规则 | 括号、关键字位置 |
关联术语
• 语法:只约束形式是否合法
• 求值:按语义计算表达式结果的过程
• 副作用:求值时对状态或外部的可观察影响
• 未定义行为:部分语言中语义未规定时的风险区